uClibc: add a whole bunch of mips64 related fixes
[openwrt/openwrt.git] / toolchain / uClibc / patches-0.9.33.2 / 613-mips64_more_relocation_fixes.patch
diff --git a/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch b/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch
new file mode 100644 (file)
index 0000000..e2efa23
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/ldso/ldso/mips/elfinterp.c
++++ b/ldso/ldso/mips/elfinterp.c
+@@ -239,7 +239,7 @@ int _dl_parse_relocation_information(str
+                                       case R_MIPS_TLS_DTPMOD64:
+                                       case R_MIPS_TLS_DTPMOD32:
+                                               if (tls_tpnt)
+-                                                      *(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid;
++                                                      *(ElfW(Addr) *)reloc_addr = tls_tpnt->l_tls_modid;
+ #ifdef __SUPPORT_LD_DEBUG__
+                                               _dl_dprintf(2, "TLS_DTPMOD : %s, %d, %d\n",
+                                                       symname, old_val, *((unsigned int *)reloc_addr));
+@@ -248,7 +248,7 @@ int _dl_parse_relocation_information(str
+                                       case R_MIPS_TLS_DTPREL64:
+                                       case R_MIPS_TLS_DTPREL32:
+-                                              *(ElfW(Word) *)reloc_addr +=
++                                              *(ElfW(Addr) *)reloc_addr +=
+                                                       TLS_DTPREL_VALUE (symbol_addr);
+ #ifdef __SUPPORT_LD_DEBUG__
+                                               _dl_dprintf(2, "TLS_DTPREL : %s, %x, %x\n",