add patches fixing ld bug linking arm tlsdesc relocs on 64-bit host

this is binutils issue #25062. without it, cross-ld crashes linking
arm programs using tlsdesc if the host is 64-bit.
This commit is contained in:
Rich Felker 2019-10-06 23:36:25 -04:00
parent 684cb17061
commit 02be46d639
3 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,16 @@
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index bb53e039e3..d52c046979 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -12027,9 +12027,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
unsigned long data, insn;
unsigned thumb;
- data = bfd_get_32 (input_bfd, hit_data);
+ data = bfd_get_signed_32 (input_bfd, hit_data);
thumb = data & 1;
- data &= ~1u;
+ data &= ~1ul;
if (thumb)
{

View File

@ -0,0 +1,16 @@
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index bb53e039e3..d52c046979 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -12027,9 +12027,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
unsigned long data, insn;
unsigned thumb;
- data = bfd_get_32 (input_bfd, hit_data);
+ data = bfd_get_signed_32 (input_bfd, hit_data);
thumb = data & 1;
- data &= ~1u;
+ data &= ~1ul;
if (thumb)
{

View File

@ -0,0 +1,16 @@
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index bb53e039e3..d52c046979 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -12027,9 +12027,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
unsigned long data, insn;
unsigned thumb;
- data = bfd_get_32 (input_bfd, hit_data);
+ data = bfd_get_signed_32 (input_bfd, hit_data);
thumb = data & 1;
- data &= ~1u;
+ data &= ~1ul;
if (thumb)
{