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

Reply via email to