📄 glibc-2.3.6-allow-gcc-4.0-elf.patch
字号:
From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.htmlFixes rtld.c: In function '_dl_start': dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never definedwhen compiling glibc-2.3.4 with gcc-4.0But see alsohttp://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.htmlandhttp://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.htmlwhich seem to propose less radical fixes?Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721--- glibc-2.3.6.orig/elf/dynamic-link.h 2005-03-12 18:12:37.000000000 -0800+++ glibc-2.3.6/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800@@ -19,47 +19,6 @@ #include <elf.h> #include <assert.h>--#ifdef RESOLVE-/* We pass reloc_addr as a pointer to void, as opposed to a pointer to- ElfW(Addr), because not all architectures can assume that the- relocated address is properly aligned, whereas the compiler is- entitled to assume that a pointer to a type is properly aligned for- the type. Even if we cast the pointer back to some other type with- less strict alignment requirements, the compiler might still- remember that the pointer was originally more aligned, thereby- optimizing away alignment tests or using word instructions for- copying memory, breaking the very code written to handle the- unaligned cases. */-# if ! ELF_MACHINE_NO_REL-auto inline void __attribute__((always_inline))-elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,- const ElfW(Sym) *sym, const struct r_found_version *version,- void *const reloc_addr);-auto inline void __attribute__((always_inline))-elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,- void *const reloc_addr);-# endif-# if ! ELF_MACHINE_NO_RELA-auto inline void __attribute__((always_inline))-elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,- const ElfW(Sym) *sym, const struct r_found_version *version,- void *const reloc_addr);-auto inline void __attribute__((always_inline))-elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,- void *const reloc_addr);-# endif-# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL-auto inline void __attribute__((always_inline))-elf_machine_lazy_rel (struct link_map *map,- ElfW(Addr) l_addr, const ElfW(Rel) *reloc);-# else-auto inline void __attribute__((always_inline))-elf_machine_lazy_rel (struct link_map *map,- ElfW(Addr) l_addr, const ElfW(Rela) *reloc);-# endif-#endif- #include <dl-machine.h> #ifndef VERSYMIDXSigned-off-by: Robert P. J. Day <rpjday@mindspring.com>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -