1.1 --- a/patches/glibc/2.3.3/glibc-2.3.4-allow-gcc-4.0-elf.patch Tue Aug 14 19:32:22 2007 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,61 +0,0 @@
1.4 -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html
1.5 -Fixes
1.6 - rtld.c: In function '_dl_start':
1.7 - dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined
1.8 - dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined
1.9 -when compiling glibc-2.3.4 with gcc-4.0
1.10 -
1.11 -But see also
1.12 -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html
1.13 -and
1.14 -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html
1.15 -which seem to propose less radical fixes?
1.16 -
1.17 -Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721
1.18 -
1.19 ---- glibc-2.3-20050307/elf/dynamic-link.h.old 2005-03-12 18:12:37.000000000 -0800
1.20 -+++ glibc-2.3-20050307/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800
1.21 -@@ -19,43 +19,6 @@
1.22 -
1.23 - #include <elf.h>
1.24 - #include <assert.h>
1.25 --
1.26 --#ifdef RESOLVE
1.27 --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to
1.28 -- ElfW(Addr), because not all architectures can assume that the
1.29 -- relocated address is properly aligned, whereas the compiler is
1.30 -- entitled to assume that a pointer to a type is properly aligned for
1.31 -- the type. Even if we cast the pointer back to some other type with
1.32 -- less strict alignment requirements, the compiler might still
1.33 -- remember that the pointer was originally more aligned, thereby
1.34 -- optimizing away alignment tests or using word instructions for
1.35 -- copying memory, breaking the very code written to handle the
1.36 -- unaligned cases. */
1.37 --auto void __attribute__((always_inline))
1.38 --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
1.39 -- const ElfW(Sym) *sym, const struct r_found_version *version,
1.40 -- void *const reloc_addr);
1.41 --auto void __attribute__((always_inline))
1.42 --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
1.43 -- const ElfW(Sym) *sym, const struct r_found_version *version,
1.44 -- void *const reloc_addr);
1.45 --auto void __attribute__((always_inline))
1.46 --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
1.47 -- void *const reloc_addr);
1.48 --auto void __attribute__((always_inline))
1.49 --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
1.50 -- void *const reloc_addr);
1.51 --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL
1.52 --auto void __attribute__((always_inline))
1.53 --elf_machine_lazy_rel (struct link_map *map,
1.54 -- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);
1.55 --# else
1.56 --auto void __attribute__((always_inline))
1.57 --elf_machine_lazy_rel (struct link_map *map,
1.58 -- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);
1.59 --# endif
1.60 --#endif
1.61 --
1.62 - #include <dl-machine.h>
1.63 -
1.64 - #ifndef VERSYMIDX