aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2003-04-09 02:55:40 +0000
committerAlexandre Oliva <aoliva@redhat.com>2003-04-09 02:55:40 +0000
commit69931e601363c9ac1d7dc3fcd6c91e16282c3f8a (patch)
tree37b3f5261ef375abb6b5067466720e4d88e75753
parent27abff5434a042f784420121a52d5a4b51902df7 (diff)
downloadgdb-69931e601363c9ac1d7dc3fcd6c91e16282c3f8a.zip
gdb-69931e601363c9ac1d7dc3fcd6c91e16282c3f8a.tar.gz
gdb-69931e601363c9ac1d7dc3fcd6c91e16282c3f8a.tar.bz2
* elf32-mips.c (bfd_elf32_bfd_reloc_type_lookup): Detect (ctor)
pointer size from ABI, not arch_bits_per_address.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-mips.c9
2 files changed, 10 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 434e546..075f69b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-08 Alexandre Oliva <aoliva@redhat.com>
+
+ * elf32-mips.c (bfd_elf32_bfd_reloc_type_lookup): Detect (ctor)
+ pointer size from ABI, not arch_bits_per_address.
+
2003-04-07 Kevin Buettner <kevinb@redhat.com>
* elfn32-mips.c (elf32_mips_grok_prstatus): Adjust core file related
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c
index 1399f00..adf057b 100644
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -1440,11 +1440,12 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
case BFD_RELOC_CTOR:
/* We need to handle BFD_RELOC_CTOR specially.
Select the right relocation (R_MIPS_32 or R_MIPS_64) based on the
- size of addresses on this architecture. */
- if (bfd_arch_bits_per_address (abfd) == 32)
- return &howto_table[(int) R_MIPS_32];
- else
+ size of addresses of the ABI. */
+ if ((elf_elfheader (abfd)->e_flags & (E_MIPS_ABI_O64
+ | E_MIPS_ABI_EABI64)) != 0)
return &elf_mips_ctor64_howto;
+ else
+ return &howto_table[(int) R_MIPS_32];
case BFD_RELOC_MIPS16_JMP:
return &elf_mips16_jump_howto;