summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2013-11-27 09:55:51 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2013-12-20 14:11:36 +0100
commit052bcf13afb067cafac5e7f4fc21fbad2b34b11f (patch)
tree5166a1dedd68ac140a6a5e404009696981f89c81
parent7bec7d6325c9e46767eb46abab0fd941c14ac0e5 (diff)
Fix for SIGBUS error on MIPS64 with N64 ABI
When accessing errno, a per thread variable, from _stdio_init a SIGBUS error happens. This change fixes the wrong relocation and debug output. Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--ldso/ldso/mips/elfinterp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ldso/ldso/mips/elfinterp.c b/ldso/ldso/mips/elfinterp.c
index e57a99fbe..a90e1636b 100644
--- a/ldso/ldso/mips/elfinterp.c
+++ b/ldso/ldso/mips/elfinterp.c
@@ -259,11 +259,11 @@ int _dl_parse_relocation_information(struct dyn_elf *xpnt,
case R_MIPS_TLS_TPREL32:
case R_MIPS_TLS_TPREL64:
CHECK_STATIC_TLS((struct link_map *)tls_tpnt);
- *(ElfW(Word) *)reloc_addr +=
+ *(ElfW(Addr) *)reloc_addr +=
TLS_TPREL_VALUE (tls_tpnt, symbol_addr);
#ifdef __SUPPORT_LD_DEBUG__
_dl_dprintf(2, "TLS_TPREL : %s, %x, %x\n",
- symname, old_val, *((unsigned int *)reloc_addr));
+ symname, old_val, *((unsigned long *)reloc_addr));
#endif
break;
}