1234567891011121314151617181920212223242526272829 |
- commit 052bcf13afb067cafac5e7f4fc21fbad2b34b11f
- Author: Waldemar Brodkorb <wbx@openadk.org>
- Date: Wed Nov 27 09:55:51 2013 +0100
- 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>
- --- a/ldso/ldso/mips/elfinterp.c
- +++ b/ldso/ldso/mips/elfinterp.c
- @@ -259,11 +259,11 @@ int _dl_parse_relocation_information(str
- 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;
- }
|