summaryrefslogtreecommitdiff
path: root/recipes/glibc/glibc-2.3.2/glibc232-gcc34-i386-fixup-attribute.patch
diff options
context:
space:
mode:
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.patch53
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,