This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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: [MIPS] Check info->executable to create DT_MIPS_RLD_MAP


David Daney wrote:
> >    When using "-pie", LD doesn't create the DT_MIPS_RLD_MAP entry,
> > because LD checks "!info->shared" and the "-pie" flag sets 
> "info->shared" to true.
> > Note that LD checks "info->executable" to create DT_DEBUG, and
> > creating DT_MIPS_RLD_MAP should be similar to creating DT_DEBUG.
> > Ex:
> >        /* SGI object has the equivalence of DT_DEBUG in the
> >           DT_MIPS_RLD_MAP entry.  This must come first because glibc
> >           only fills in DT_MIPS_RLD_MAP (not DT_DEBUG) and 
> some tools
> >           may only look at the first one they see.  */
> >        if (!info->shared
> >            && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, 
> DT_MIPS_RLD_MAP, 0))
> >          return FALSE;
> >
> 
> Probably you want info->executable here too.
> 
> I have tried simple programs with -pie and they seem to work as is. 
> What failures are you seeing?  Does the libgcc unwinder use this?

  I hit an issue in gdbserver that fails to return a shared-library list,
because gdbserver tries to find the DT_MIPS_RLD_MAP entry from
a program that is built with -pie.

> In any event, you could test changing this.
> 
> David Daney

  Yes.  Thanks!

Regards,
Chao-ying


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