This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [sparc-solaris] unexpected warning when starting program


Looking at this again...

On Sun, Mar 11, 2007 at 10:16:46PM -0700, Joel Brobecker wrote:
> Slightly later, GDB tries to update its list of shared libraries again,
> and this time finds that base address. So it now scans a different
> memory region for that list of shared libraries. And in addition to
> that, there is the following code that was recently added:
> 
>       /* On Solaris, the dynamic linker is not in the normal list of
>          shared objects, so make sure we pick it up too.  Having
>          symbol information for the dynamic linker is quite crucial
>          for skipping dynamic linker resolver code.  */
>       if (lm == 0 && ldsomap == 0)
>         lm = ldsomap = solib_svr4_r_ldsomap ();
> 
> The information extracted from this entry gives us the following path
> to the loader: /lib/ld.so.1.  The paths are different!!!

...

> I am not sure how to fix it either. On solaris 2.8 and 2.9, the two
> files are identical but distinct - one is not a link to the other.
> On solaris 2.10, however, one is a link of the other, so we could
> presumably check the fullpath instead of doing a direct name comparison.
> But that would be pretty expensive for just one type of host, no?

xfullpath isn't really that expensive.  We could even do it only for
ld.so.1; I think that's not totally unreasonable.

Are you sure the files are distinct on your Solaris 2.8 / 2.9?  I have
a symlink /lib -> ./usr/lib on 2.8, and a symlink /usr/lib/ld.so.1 ->
../../lib/ld.so.1 on 2.10.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]