diff options
Diffstat (limited to 'recipes/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch')
-rw-r--r-- | recipes/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/recipes/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch b/recipes/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch new file mode 100644 index 0000000000..4b3ce21e78 --- /dev/null +++ b/recipes/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch @@ -0,0 +1,53 @@ +--- glibc-2.3.2/sysdeps/i386/dl-machine.h~glibc232-gcc34-i386-fixup-attribute.patch 2004-04-25 23:26:18.000000000 -0400 ++++ glibc-2.3.2/sysdeps/i386/dl-machine.h 2004-04-25 23:26:19.000000000 -0400 +@@ -155,11 +155,13 @@ + destroys the passed register information. */ + /* GKM FIXME: Fix trampoline to pass bounds so we can do + without the `__unbounded' qualifier. */ ++#define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), unused)) ++ + static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset) +- __attribute__ ((regparm (2), unused)); ++ ARCH_FIXUP_ATTRIBUTE; + static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset, + ElfW(Addr) retaddr) +- __attribute__ ((regparm (3), unused)); ++ ARCH_FIXUP_ATTRIBUTE; + # endif + + /* This code is used in dl-runtime.c to call the `fixup' function +--- glibc-2.3.2/elf/dl-runtime.c~glibc232-gcc34-i386-fixup-attribute.patch 2003-02-07 14:41:12.000000000 -0500 ++++ glibc-2.3.2/elf/dl-runtime.c 2004-04-25 23:42:01.000000000 -0400 +@@ -36,6 +36,12 @@ + # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym)) + #endif + ++/* The fixup functions might have need special attributes. If none ++ are provided define the macro as empty. */ ++#ifndef ARCH_FIXUP_ATTRIBUTE ++# define ARCH_FIXUP_ATTRIBUTE ++#endif ++ + + /* This function is called through a special trampoline from the PLT the + first time each PLT entry is called. We must perform the relocation +@@ -45,7 +51,8 @@ + function. */ + + #ifndef ELF_MACHINE_NO_PLT +-static ElfW(Addr) __attribute_used__ ++static ElfW(Addr) ++__attribute ((used, noinline)) ARCH_FIXUP_ATTRIBUTE + fixup ( + # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS + ELF_MACHINE_RUNTIME_FIXUP_ARGS, +@@ -132,7 +139,8 @@ + + #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__ + +-static ElfW(Addr) __attribute_used__ ++static ElfW(Addr) ++__attribute ((used, noinline)) ARCH_FIXUP_ATTRIBUTE + profile_fixup ( + #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS + ELF_MACHINE_RUNTIME_FIXUP_ARGS, |