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-x86-64.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-x86-64.c')
-rw-r--r-- | bfd/elf64-x86-64.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 6cc70a7..3300a20 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -4921,7 +4921,8 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd, else if (bfd_link_pic (info) && SYMBOL_REFERENCES_LOCAL_P (info, h)) { - BFD_ASSERT (SYMBOL_DEFINED_NON_SHARED_P (h)); + if (!SYMBOL_DEFINED_NON_SHARED_P (h)) + return false; BFD_ASSERT((h->got.offset & 1) != 0); if (info->enable_dt_relr) generate_dynamic_reloc = false; |