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