diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1998e22..bea9526 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,11 @@ 2020-04-01 Tamar Christina <tamar.christina@arm.com> + PR ld/16017 + * elf32-arm.c (elf32_arm_populate_plt_entry): Set LSB of the PLT0 + address in the GOT if in thumb only mode. + +2020-04-01 Tamar Christina <tamar.christina@arm.com> + * elf32-arm.c (elf32_thumb2_plt_entry): Fix PC-rel offset. 2020-04-01 Hans-Peter Nilsson <hp@bitrange.com> diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 0036ff9..02d43a8 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -10001,6 +10001,12 @@ elf32_arm_populate_plt_entry (bfd *output_bfd, struct bfd_link_info *info, rel.r_info = ELF32_R_INFO (dynindx, R_ARM_JUMP_SLOT); initial_got_entry = (splt->output_section->vma + splt->output_offset); + + /* PR ld/16017 + When thumb only we need to set the LSB for any address that + will be used with an interworking branch instruction. */ + if (using_thumb_only (htab)) + initial_got_entry |= 1; } } |