aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-s390.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2024-02-15 19:03:07 +1030
committerAlan Modra <amodra@gmail.com>2024-02-15 19:11:42 +1030
commit313f04b6edcd09e0e7ff224bd54a892ab8f029aa (patch)
treeb7a16c713a410489aeec144fb73106b193d10254 /bfd/elf64-s390.c
parentd88a48558d6dc171fccb4c5c496c9248e78eecd0 (diff)
downloadgdb-313f04b6edcd09e0e7ff224bd54a892ab8f029aa.zip
gdb-313f04b6edcd09e0e7ff224bd54a892ab8f029aa.tar.gz
gdb-313f04b6edcd09e0e7ff224bd54a892ab8f029aa.tar.bz2
Re: elf_backend_finish_dynamic_symbol returning false
I didn't examine ld testsuite logs properly after cf95b909e2c2. Replacing one of the "return false" with BFD_ASSERT in finish_dynamic_symbol was wrong as it causes segmentation faults on testcases expected to fail. Revert those changes and instead make a bfd_final_link failure noisy.
Diffstat (limited to 'bfd/elf64-s390.c')
-rw-r--r--bfd/elf64-s390.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index bef90f6..ab9ec3f 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -3371,7 +3371,8 @@ elf_s390_finish_dynamic_symbol (bfd *output_bfd,
RELATIVE reloc. The entry in the global offset table
will already have been initialized in the
relocate_section function. */
- BFD_ASSERT (h->def_regular || ELF_COMMON_DEF_P (h));
+ if (!(h->def_regular || ELF_COMMON_DEF_P (h)))
+ return false;
BFD_ASSERT((h->got.offset & 1) != 0);
rela.r_info = ELF64_R_INFO (0, R_390_RELATIVE);
rela.r_addend = (h->root.u.def.value