OSDN Git Service

bfd/
authorRichard Sandiford <rsandifo@nildram.co.uk>
Thu, 12 Apr 2007 19:27:35 +0000 (19:27 +0000)
committerRichard Sandiford <rsandifo@nildram.co.uk>
Thu, 12 Apr 2007 19:27:35 +0000 (19:27 +0000)
* elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Don't add
DT_MIPS_RTLD_MAP for PIEs.

bfd/ChangeLog
bfd/elfxx-mips.c

index 962a288..125960d 100644 (file)
@@ -1,5 +1,10 @@
 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
 
+       * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Don't add
+       DT_MIPS_RTLD_MAP for PIEs.
+
+2007-04-12  Richard Sandiford  <richard@codesourcery.com>
+
        * elfxx-mips.c (mips_elf_calculate_relocation): Set DT_TEXTREL
        when creating a __GOTT_BASE__ or __GOTT_INDEX__ relocation
        in a read-only section.
index 5c782de..c560e18 100644 (file)
@@ -7586,18 +7586,16 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
         must add the entries now so that we get the correct size for
         the .dynamic section.  The DT_DEBUG entry is filled in by the
         dynamic linker and used by the debugger.  */
-      if (info->executable)
-       {
-         /* SGI object has the equivalence of DT_DEBUG in the
-            DT_MIPS_RLD_MAP entry.  */
-         if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP, 0))
-           return FALSE;
-         if (!SGI_COMPAT (output_bfd))
-           {
-             if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
-               return FALSE;
-           }
-       }
+      if (info->executable
+         && !SGI_COMPAT (output_bfd)
+         && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
+       return FALSE;
+
+      /* SGI object has the equivalence of DT_DEBUG in the
+        DT_MIPS_RLD_MAP entry.  */
+      if (!info->shared
+         && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP, 0))
+       return FALSE;
 
       if (reltext && (SGI_COMPAT (output_bfd) || htab->is_vxworks))
        info->flags |= DF_TEXTREL;