patches/binutils/2.15/s390-invalid-insn-format.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue May 08 17:48:32 2007 +0000 (2007-05-08)
changeset 78 c3868084d81a
permissions -rw-r--r--
Huge fixes to glibc build, so that we can build at least (and at last):
- use ports addon even when installing headers,
- use optimisation (-O) when installing headers, to avoid unnecessary warnings (thanks Robert P. J. DAY for pointing this out!),
- lowest kernel version to use is only X.Y.Z, not X.Y.Z.T,
- a bit of preparations for NPTL (RSN I hope),
- fix fixing the linker scripts (changing the backup file is kind of useless and stupid);

Shut uClibc finish step: there really is nothing to do;

Add a patch for glibc-2.3.6 weak aliases handling on some archs (ARM and ALPHA at least);

Did not catch the make errors: fixed the pattern matching in scripts/functions;

Introduce a new log level, ALL:
- send components' build messages there,
- DEBUG log level is destined only for crosstool-NG debug messages,
- migrate sub-actions to use appropriate log levels;

Update the armeb-unknown-linux-gnu sample:
- it builds!
- uses gcc-4.0.4 and glibc-2.3.6,
- updated to latest config options set.
     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