summaryrefslogtreecommitdiff
path: root/patches/binutils/2.15/810-s390-invalid-insn-format.patch
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-09-23 17:08:09 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-09-23 17:08:09 (GMT)
commitb1e693e40281dc8c451e8892dfcdf55d78a4ade3 (patch)
treec276bc44f23b42895b459efbf2597f4bef378819 /patches/binutils/2.15/810-s390-invalid-insn-format.patch
parent3ad6464ffe38eb15591b404e0749aa89f4074fd1 (diff)
Renamed all patches file names so that locales are now irrelevant to sort the files.
Removed the locale check as it is now irrelevant. Removed the experimental binutils 2.17.50.0.xx: 2.18 is here now.
Diffstat (limited to 'patches/binutils/2.15/810-s390-invalid-insn-format.patch')
-rw-r--r--patches/binutils/2.15/810-s390-invalid-insn-format.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/binutils/2.15/810-s390-invalid-insn-format.patch b/patches/binutils/2.15/810-s390-invalid-insn-format.patch
new file mode 100644
index 0000000..3296201
--- /dev/null
+++ b/patches/binutils/2.15/810-s390-invalid-insn-format.patch
@@ -0,0 +1,42 @@
+Message-ID: <000801c48f60$cec16630$9103a8c0@ULOC5012>
+From: "Michael Geiger" <mcgege@gmx.de>
+To: <dank@kegel.com>
+Subject: Patch for cross compiling s/390 kernel on linux host
+Date: Tue, 31 Aug 2004 15:45:41 +0200
+
+Dear Dan,
+
+I had big problems compiling a kernel for s/390 on my linux host - I tried
+different chains from crosstool-0.28-rc34 and finally succeded with
+gcc-3.3.4-glibc-2.3.2 after applying another patch to binutils-2.15
+(attached).
+All compilations of the different kernel versions I tried stopped with
+"Invalid .insn format" somewhere. I checked the recent cvs version of
+binutils and applied the latest diff to gas/config/tc-s390.c and that solved
+it.
+
+Greetings
+
+Michael Geiger
+
+
+diff -u -r1.39 -r1.40
+--- src/gas/config/tc-s390.c 2004/05/06 11:01:48 1.39
++++ src/gas/config/tc-s390.c 2004/06/15 12:38:08 1.40
+@@ -1596,13 +1596,13 @@
+ if (exp.X_op == O_constant)
+ {
+ if ( ( opformat->oplen == 6
+- && exp.X_add_number >= 0
++ && (addressT) exp.X_add_number >= 0
+ && (addressT) exp.X_add_number < (1ULL << 48))
+ || ( opformat->oplen == 4
+- && exp.X_add_number >= 0
++ && (addressT) exp.X_add_number >= 0
+ && (addressT) exp.X_add_number < (1ULL << 32))
+ || ( opformat->oplen == 2
+- && exp.X_add_number >= 0
++ && (addressT) exp.X_add_number >= 0
+ && (addressT) exp.X_add_number < (1ULL << 16)))
+ md_number_to_chars (insn, exp.X_add_number, opformat->oplen);
+ else