aboutsummaryrefslogtreecommitdiffstats
path: root/packages/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch')
-rw-r--r--packages/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/packages/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch b/packages/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch
index e69de29bb2..4841770a2b 100644
--- a/packages/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch
+++ b/packages/glibc/glibc-2.3.2/50_glibc232-mips-buildfix.patch
@@ -0,0 +1,48 @@
+--- sysdeps/mips/dl-machine.h 22 Mar 2003 12:50:46 -0000 1.68
++++ sysdeps/mips/dl-machine.h 5 May 2003 08:53:35 -0000
+@@ -534,13 +534,14 @@ static inline void
+ #endif
+ elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
+ const ElfW(Sym) *sym, const struct r_found_version *version,
+- /* We use void* because the location to be relocated
+- is not required to be properly aligned for a
+- ELFW(Addr). */
+- void /* ElfW(Addr) */ *const reloc_addr)
++ ElfW(Addr) *const reloc_addr)
+ {
+ const unsigned long int r_type = ELFW(R_TYPE) (reloc->r_info);
+
++/* We use void* because the location to be relocated is not required
++ to be properly aligned for a ELFW(Addr). */
++ void *const r_addr = reloc_addr;
++
+ #if !defined RTLD_BOOTSTRAP && !defined SHARED
+ /* This is defined in rtld.c, but nowhere in the static libc.a;
+ make the reference weak so static programs can still link. This
+@@ -565,7 +566,7 @@ elf_machine_rel (struct link_map *map, c
+ /* Support relocations on mis-aligned offsets. Should we ever
+ implement RELA, this should be replaced with an assignment
+ from reloc->r_addend. */
+- __builtin_memcpy (&reloc_value, reloc_addr, sizeof (reloc_value));
++ __builtin_memcpy (&reloc_value, r_addr, sizeof (reloc_value));
+
+ if (symidx)
+ {
+@@ -613,7 +614,7 @@ elf_machine_rel (struct link_map *map, c
+ #endif
+ reloc_value += map->l_addr;
+
+- __builtin_memcpy (reloc_addr, &reloc_value, sizeof (reloc_value));
++ __builtin_memcpy (r_addr, &reloc_value, sizeof (reloc_value));
+ }
+ break;
+ case R_MIPS_NONE: /* Alright, Wilbur. */
+@@ -640,7 +641,7 @@ elf_machine_rel (struct link_map *map, c
+
+ static inline void
+ elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
+- void /* ElfW(Addr) */ *const reloc_addr)
++ ElfW(Addr) *const reloc_addr)
+ {
+ /* XXX Nothing to do. There is no relative relocation, right? */
+ }