* elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Put
authorDaniel Jacobowitz <drow@false.org>
Tue, 17 Apr 2007 13:14:08 +0000 (13:14 +0000)
committerDaniel Jacobowitz <drow@false.org>
Tue, 17 Apr 2007 13:14:08 +0000 (13:14 +0000)
DT_MIPS_RLD_MAP before DT_DEBUG again.

bfd/ChangeLog
bfd/elfxx-mips.c

index 8ed0fad9a54cba03b19f5309b594e6d7ac7e4990..7d7838c848bde749439b1cd7e3f5940a739c7150 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-17  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Put
+       DT_MIPS_RLD_MAP before DT_DEBUG again.
+
 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
 
        * Makefile.am: Add ACLOCAL_AMFLAGS.
index c560e18f5693651eb0434d851993e6fb41236a42..fa171645e8fc0449f7184bc589d8622dcc0edb03 100644 (file)
@@ -7584,19 +7584,23 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd,
       /* Add some entries to the .dynamic section.  We fill in the
         values later, in _bfd_mips_elf_finish_dynamic_sections, but we
         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_COMPAT (output_bfd)
-         && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0))
-       return FALSE;
+        the .dynamic section.  */
 
       /* SGI object has the equivalence of DT_DEBUG in the
-        DT_MIPS_RLD_MAP entry.  */
+        DT_MIPS_RLD_MAP entry.  This must come first because glibc
+        only fills in DT_MIPS_RLD_MAP (not DT_DEBUG) and GDB only
+        looks at the first one it sees.  */
       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;
+
       if (reltext && (SGI_COMPAT (output_bfd) || htab->is_vxworks))
        info->flags |= DF_TEXTREL;