[MIPS] Check info->executable to create DT_MIPS_RLD_MAP

Chao-Ying Fu Chao-Ying.Fu@imgtec.com
Sat Jun 22 00:00:00 GMT 2013


Hi All,

  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;

      /* The DT_DEBUG entry may be filled in by the dynamic linker and
         used by the debugger.  */
      if (info->executable
          && !SGI_COMPAT (output_bfd)
          && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
        return FALSE;

  Any feedback about checking "info->executable" to create DT_MIPS_RLD_MAP and related stuffs?
Thanks a lot!

Regards,
Chao-ying
	

	



More information about the Binutils mailing list