Segmentation fault on startup when MIPS_RLD_MAP is 0

Richard Braun rbraun at sceen.net
Tue Jan 25 15:44:48 UTC 2011


On Tue, Jan 25, 2011 at 03:17:27PM +0100, Joakim Tjernlund wrote:
> DT_MIPS_RLD_MAP stuff looks like my work several years ago. There were complaints
> that debugging didn't work on MIPS and nobody knew why. I scanned glibc and found
> out how they did it and impl. the same in uClibc. Needless to say, I don't
> know anything about MIPS though.
> 
> I do think your conclusion is a vague though. What do you mean with
> d_ptr isn't checked? What is wrong with:
>   if ((dpnt->d_tag == DT_MIPS_RLD_MAP) && (dpnt->d_un.d_ptr))
> 
> You need to provide an example of what you want and possibly some MIPS
> person can review it.

My mistake, this is the *fixed* version. The current source code is

else if (dpnt->d_tag == DT_MIPS_RLD_MAP) \
     *(ElfW(Addr) *)(dpnt->d_un.d_ptr) =  (ElfW(Addr)) debug_addr; \
} while (0)

-- 
Richard Braun


More information about the uClibc mailing list