From fc4ddd6734e522debe7e99812b743b368f1cc946 Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Fri, 15 Dec 2023 21:02:32 +0000 Subject: Fix segmentation fault in bfd/elf32-hppa.c 2023-12-15 John David Anglin PR ld/31148 bfd/ChangeLog: * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Output relative reloc only when eh->root.type is bfd_link_hash_defined or bfd_link_hash_defweak. --- bfd/elf32-hppa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index 44129c8..d64ca75 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -4216,7 +4216,9 @@ elf32_hppa_finish_dynamic_symbol (bfd *output_bfd, file, we just want to emit a RELATIVE reloc. The entry in the global offset table will already have been initialized in the relocate_section function. */ - if (!is_dyn) + if (!is_dyn + && (eh->root.type == bfd_link_hash_defined + || eh->root.type == bfd_link_hash_defweak)) { rela.r_info = ELF32_R_INFO (0, R_PARISC_DIR32); rela.r_addend = (eh->root.u.def.value -- cgit v1.1