aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-arm.c6
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;
}
}