From 81c9e0f6c48748f4b66fc3b13e12eb68735cf1f9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 1 Mar 2022 09:51:59 +0000 Subject: [PATCH] Prevent an assertion from being triggered when linking an ARM object file with incorrectly set build attributes. PR 28848 PR 28859 * elf32-arm.c (elf32_arm_merge_eabi_attributes): If the first input bfd has a Tag_ABI_HardFP_use set to 3 but does not also have TAG_FP_arch set then reset the TAG_ABI_HardFP_use. --- bfd/ChangeLog | 7 +++++++ bfd/elf32-arm.c | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7f0f25159b7..843bdc8d8a1 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2022-03-01 Nick Clifton + + PR 28848 + * elf32-arm.c (elf32_arm_merge_eabi_attributes): If the first + input bfd has a Tag_ABI_HardFP_use set to 3 but does not also have + TAG_FP_arch set then reset the TAG_ABI_HardFP_use. + 2022-02-28 Torbjörn Svensson PR 25713 diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 86da60e768c..616efe60ad1 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -14523,6 +14523,14 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, struct bfd_link_info *info) out_attr[Tag_MPextension_use_legacy].i = 0; } + /* PR 28859 and 28848: Handle the case where the first input file, + eg crti.o, has a Tag_ABI_HardFP_use of 3 but no Tag_FP_arch set. + Using Tag_ABI_HardFP_use in this way is deprecated, so reset the + attribute to zero. + FIXME: Should we handle other non-zero values of Tag_ABI_HardFO_use ? */ + if (out_attr[Tag_ABI_HardFP_use].i == 3 && out_attr[Tag_FP_arch].i == 0) + out_attr[Tag_ABI_HardFP_use].i = 0; + return result; } -- 2.30.2