From 29e9b073e3b356aae4c249bf3e265b2a608aea6c Mon Sep 17 00:00:00 2001 From: Christophe Lyon Date: Tue, 20 Mar 2018 10:55:45 +0100 Subject: [PATCH] [ARM] FDPIC: Translate R_ARM_TARGET2 relocation into R_ARM_GOT32 relocation for FDPIC platform MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2018-04-25 Christophe Lyon Mickaël Guêné bfd/ * elf32-arm.c (bfd_elf32_arm_set_target_params): Handle FDPIC case for R_ARM_TARGET2. --- bfd/ChangeLog | 6 ++++++ bfd/elf32-arm.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bd7c6ae..766341a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,12 @@ 2018-04-25 Christophe Lyon Mickaël Guêné + * elf32-arm.c (bfd_elf32_arm_set_target_params): Handle FDPIC case + for R_ARM_TARGET2. + +2018-04-25 Christophe Lyon + Mickaël Guêné + * elf32-arm.c (DEFAULT_STACK_SIZE): New. (elf32_arm_always_size_sections): Create stack segment. diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 35b60ed..c2f4804 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -8957,7 +8957,9 @@ bfd_elf32_arm_set_target_params (struct bfd *output_bfd, return; globals->target1_is_rel = params->target1_is_rel; - if (strcmp (params->target2_type, "rel") == 0) + if (globals->fdpic_p) + globals->target2_reloc = R_ARM_GOT32; + else if (strcmp (params->target2_type, "rel") == 0) globals->target2_reloc = R_ARM_REL32; else if (strcmp (params->target2_type, "abs") == 0) globals->target2_reloc = R_ARM_ABS32; -- 2.7.4