patches/binutils/2.15/810-s390-invalid-insn-format.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 13 10:32:38 2008 +0000 (2008-07-13)
changeset 645 8e58024f8e37
permissions -rw-r--r--
Ioannis E. VENETIS <venetis@mail.capsl.udel.edu> pointed out that GMP and MPFR were not used by gcc.
Turned out that none could use GMP and MPFR as the config option changed its name, but the change was not propagated to all users.

/trunk/scripts/build/binutils.sh | 2 1 1 0 +-
/trunk/scripts/build/debug/300-gdb.sh | 2 1 1 0 +-
/trunk/scripts/build/cc_gcc.sh | 6 3 3 0 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
     1 Message-ID: <000801c48f60$cec16630$9103a8c0@ULOC5012>
     2 From: "Michael Geiger" <mcgege@gmx.de>
     3 To: <dank@kegel.com>
     4 Subject: Patch for cross compiling s/390 kernel on linux host
     5 Date: Tue, 31 Aug 2004 15:45:41 +0200
     6 
     7 Dear Dan,
     8 
     9 I had big problems compiling a kernel for s/390 on my linux host - I tried
    10 different chains from crosstool-0.28-rc34 and finally succeded with
    11 gcc-3.3.4-glibc-2.3.2 after applying another patch to binutils-2.15
    12 (attached).
    13 All compilations of the different kernel versions I tried stopped with
    14 "Invalid .insn format" somewhere. I checked the recent cvs version of
    15 binutils and applied the latest diff to gas/config/tc-s390.c and that solved
    16 it.
    17 
    18 Greetings
    19 
    20 Michael Geiger
    21 
    22 
    23 diff -u -r1.39 -r1.40
    24 --- src/gas/config/tc-s390.c	2004/05/06 11:01:48	1.39
    25 +++ src/gas/config/tc-s390.c	2004/06/15 12:38:08	1.40
    26 @@ -1596,13 +1596,13 @@
    27    if (exp.X_op == O_constant)
    28      {
    29        if (   (   opformat->oplen == 6
    30 -	      && exp.X_add_number >= 0
    31 +	      && (addressT) exp.X_add_number >= 0
    32  	      && (addressT) exp.X_add_number < (1ULL << 48))
    33  	  || (   opformat->oplen == 4
    34 -	      && exp.X_add_number >= 0
    35 +	      && (addressT) exp.X_add_number >= 0
    36  	      && (addressT) exp.X_add_number < (1ULL << 32))
    37  	  || (   opformat->oplen == 2
    38 -	      && exp.X_add_number >= 0
    39 +	      && (addressT) exp.X_add_number >= 0
    40  	      && (addressT) exp.X_add_number < (1ULL << 16)))
    41  	md_number_to_chars (insn, exp.X_add_number, opformat->oplen);
    42        else