--- /dev/null
+--- glibc-2.3.3/elf/dl-runtime.c.orig 2004-03-17 16:30:47.000000000 +0100
++++ glibc-2.3.3/elf/dl-runtime.c 2004-03-17 16:59:15.961284208 +0100
+@@ -45,7 +45,7 @@
+ function. */
+
+ #ifndef ELF_MACHINE_NO_PLT
+-static ElfW(Addr) __attribute_used__
++ElfW(Addr) __attribute__((regparm(2)))
+ fixup (
+ # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+@@ -132,7 +132,7 @@
+
+ #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
+
+-static ElfW(Addr) __attribute_used__
++ElfW(Addr) __attribute__((regparm(3)))
+ profile_fixup (
+ #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+--- glibc-2.3.3/sysdeps/i386/dl-machine.h.orig 2003-10-27 13:28:50.000000000 +0100
++++ glibc-2.3.3/sysdeps/i386/dl-machine.h 2004-03-17 16:59:58.259853848 +0100
+@@ -154,11 +154,11 @@
+ destroys the passed register information. */
+ /* GKM FIXME: Fix trampoline to pass bounds so we can do
+ without the `__unbounded' qualifier. */
+-static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
+- __attribute__ ((regparm (2), unused));
+-static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
++ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
++ __attribute__((regparm(2)));
++ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
+ ElfW(Addr) retaddr)
+- __attribute__ ((regparm (3), unused));
++ __attribute__((regparm(3)));
+ # endif
+
+ /* This code is used in dl-runtime.c to call the `fixup' function