Hi Bernhard, Bernhard Reutner-Fischer wrote, > On 24 November 2013 10:51, Waldemar Brodkorb <w...@openadk.org> wrote: > > Hi Developers, > > > > I am trying to find the reason for a SIGBUS error, when > > which binutils? ld.gold or bfd? > thanks,
Binutils 2.23.2. normal ld not ld.gold. I have done a deeper look into glibc 2.18 code and found out that they are using ElfW(Addr) for the relocation address (or negative offset?), see ./ports/sysdeps/mips/dl-machine.h. After changing this, the SIGBUS is gone. I have done following change to fix the debug output, too: diff -Nur uClibc-dev.orig/ldso/ldso/mips/elfinterp.c uClibc-dev/ldso/ldso/mips/elfinterp.c --- uClibc-dev.orig/ldso/ldso/mips/elfinterp.c 2013-11-23 22:51:50.000000000 +0100 +++ uClibc-dev/ldso/ldso/mips/elfinterp.c 2013-11-25 11:46:04.000000000 +0100 @@ -259,11 +259,11 @@ 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; } What do you think about this change? I verified that it does not effect a mips32 o32 build. Thanks for any comments. Waldemar _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc