From 5750dcecf6a09f90007d130f93da4bca48b2ce48 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Tue, 17 Apr 2007 13:14:08 +0000 Subject: * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Put DT_MIPS_RLD_MAP before DT_DEBUG again. --- bfd/elfxx-mips.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'bfd/elfxx-mips.c') 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; -- cgit v1.1