patches/glibc/2.3.2/glibc-2.3.2-allow-gcc-3.5-elf.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 
     2 http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
     3 
     4 Fixes gcc-3.5 errors
     5 
     6 dl-load.c: In function `_dl_map_object_from_fd':
     7 dl-load.c:1179: error: invalid lvalue in assignment
     8 dl-load.c:1205: error: invalid lvalue in assignment
     9 
    10 ===================================================================
    11 RCS file: /cvs/glibc/libc/elf/dl-load.c,v
    12 retrieving revision 1.235
    13 retrieving revision 1.236
    14 diff -u -r1.235 -r1.236
    15 --- libc/elf/dl-load.c	2004/02/09 07:03:48	1.235
    16 +++ libc/elf/dl-load.c	2004/02/21 18:25:41	1.236
    17 @@ -1228,7 +1228,7 @@
    18        }
    19      else
    20        /* Adjust the PT_PHDR value by the runtime load address.  */
    21 -      (ElfW(Addr)) l->l_phdr += l->l_addr;
    22 +      l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
    23    }
    24  
    25  #ifdef USE_TLS
    26 @@ -1254,7 +1254,7 @@
    27  	}
    28      }
    29    else
    30 -    (ElfW(Addr)) l->l_ld += l->l_addr;
    31 +    l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
    32  
    33    l->l_entry += l->l_addr;
    34