aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-04-17 13:14:08 +0000
committerDaniel Jacobowitz <drow@false.org>2007-04-17 13:14:08 +0000
commit5750dcecf6a09f90007d130f93da4bca48b2ce48 (patch)
treeaf9b00dcc8b7bce1f93ade44e7ae2da338f02f44
parenta4a181ad269921cfc38a07a5b7579eb5ca9e1057 (diff)
downloadgdb-5750dcecf6a09f90007d130f93da4bca48b2ce48.zip
gdb-5750dcecf6a09f90007d130f93da4bca48b2ce48.tar.gz
gdb-5750dcecf6a09f90007d130f93da4bca48b2ce48.tar.bz2
* elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Put
DT_MIPS_RLD_MAP before DT_DEBUG again.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elfxx-mips.c18
2 files changed, 16 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8ed0fad..7d7838c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index c560e18..fa17164 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -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;