diff options
author | Alan Modra <amodra@gmail.com> | 2024-02-15 19:03:07 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2024-02-15 19:11:42 +1030 |
commit | 313f04b6edcd09e0e7ff224bd54a892ab8f029aa (patch) | |
tree | b7a16c713a410489aeec144fb73106b193d10254 /bfd/elf64-s390.c | |
parent | d88a48558d6dc171fccb4c5c496c9248e78eecd0 (diff) | |
download | gdb-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.c | 3 |
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 |