[PATCH] aarch64: Fix DT_RELR support with discarded sections
Szabolcs Nagy
szabolcs.nagy@arm.com
Tue Jun 4 10:29:41 GMT 2024
In case of discarded sections, via /DISCARD/ or linkonce, relr
relocation accounting was wrong. This broke building linux.
---
bfd/elfnn-aarch64.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 81f1a646125..02873f2ceb2 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -9327,6 +9327,10 @@ record_relr_non_got_relocs (bfd *input_bfd, struct bfd_link_info *info,
return true;
if (sec->alignment_power == 0)
return true;
+ if (!bfd_is_abs_section (sec)
+ && bfd_is_abs_section (sec->output_section))
+ /* Input section has been discarded. */
+ return true;
sreloc = elf_section_data (sec)->sreloc;
if (sreloc == NULL)
return true;
--
2.25.1
More information about the Binutils
mailing list