diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 14abe01..6c5739a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2013-04-29 Will Newton <will.newton@linaro.org> + * elf32-arm.c (elf32_arm_populate_plt_entry): Call + elf32_arm_add_dynreloc when emitting R_ARM_IRELATIVE relocs. + +2013-04-29 Will Newton <will.newton@linaro.org> + * elf64-aarch64.c (elf64_aarch64_check_relocs): Move relocation error check up and add error message. diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 6201e60..2ed4741 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -7699,8 +7699,13 @@ elf32_arm_populate_plt_entry (bfd *output_bfd, struct bfd_link_info *info, sgot->contents + got_offset); } - loc = srel->contents + plt_index * RELOC_SIZE (htab); - SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); + if (dynindx == -1) + elf32_arm_add_dynreloc (output_bfd, info, srel, &rel); + else + { + loc = srel->contents + plt_index * RELOC_SIZE (htab); + SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc); + } } /* Some relocations map to different relocations depending on the |