patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-elf.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 01 19:04:20 2007 +0000 (2007-07-01)
changeset 182 223c84ec2d90
permissions -rw-r--r--
Merge the build system to trunk: ct-ng is now installable:
- ./configure --prefix=/some/place
- make
- make install
- export PATH="${PATH}:/some/place/bin"
- ct-ng <action>
yann@1
     1
Fixes
yann@1
     2
yann@1
     3
dl-load.c: In function '_dl_map_object_from_fd':
yann@1
     4
dl-load.c:1089: error: invalid lvalue in assignment
yann@1
     5
dl-load.c:1109: error: invalid lvalue in assignment
yann@1
     6
make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-load.o] Error 1
yann@1
     7
yann@1
     8
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/elf/dl-load.c.diff?r1=1.235&r2=1.236&cvsroot=glibc
yann@1
     9
rediffed against glibc-2.2.5
yann@1
    10
yann@1
    11
Revision 1.236, Sat Feb 21 18:25:41 2004 UTC by aj
yann@1
    12
Branch: MAIN
yann@1
    13
Changes since 1.235: +2 -2 lines
yann@1
    14
Diff to previous 1.235 (colored)
yann@1
    15
yann@1
    16
(_dl_map_object_from_fd): Fix casts used as lvalue.
yann@1
    17
yann@1
    18
yann@1
    19
diff -ur glibc-2.2.5/elf/dl-load.c glibc-2.2.5-patched/elf/dl-load.c
yann@1
    20
--- glibc-2.2.5/elf/dl-load.c	2001-11-10 14:43:10.000000000 -0800
yann@1
    21
+++ glibc-2.2.5-patched/elf/dl-load.c	2005-03-11 13:48:18.211982328 -0800
yann@1
    22
@@ -1086,7 +1086,7 @@
yann@1
    23
       }
yann@1
    24
     else
yann@1
    25
       /* Adjust the PT_PHDR value by the runtime load address.  */
yann@1
    26
-      (ElfW(Addr)) l->l_phdr += l->l_addr;
yann@1
    27
+      l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
yann@1
    28
   }
yann@1
    29
 
yann@1
    30
   /* We are done mapping in the file.  We no longer need the descriptor.  */
yann@1
    31
@@ -1106,7 +1106,7 @@
yann@1
    32
 	}
yann@1
    33
     }
yann@1
    34
   else
yann@1
    35
-    (ElfW(Addr)) l->l_ld += l->l_addr;
yann@1
    36
+    l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
yann@1
    37
 
yann@1
    38
   l->l_entry += l->l_addr;
yann@1
    39