From 69931e601363c9ac1d7dc3fcd6c91e16282c3f8a Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Wed, 9 Apr 2003 02:55:40 +0000 Subject: [PATCH] * elf32-mips.c (bfd_elf32_bfd_reloc_type_lookup): Detect (ctor) pointer size from ABI, not arch_bits_per_address. --- bfd/ChangeLog | 5 +++++ bfd/elf32-mips.c | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 434e5463ba4..075f69bd7e4 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2003-04-08 Alexandre Oliva + + * 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 * elfn32-mips.c (elf32_mips_grok_prstatus): Adjust core file related diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index 1399f003128..adf057b40d2 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; -- 2.30.2