diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-09-18 09:12:27 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2021-09-19 07:19:39 -0700 |
commit | e4675a5810fc3d0a7d0b1c744f0a1837ccc0507e (patch) | |
tree | 0b4614c66e6c46feb1d0bf3b7252d0c771139724 /bfd | |
parent | 034ce7b42a1da639979fd743d8b9b1fb86c22d1c (diff) | |
download | fsf-binutils-gdb-e4675a5810fc3d0a7d0b1c744f0a1837ccc0507e.zip fsf-binutils-gdb-e4675a5810fc3d0a7d0b1c744f0a1837ccc0507e.tar.gz fsf-binutils-gdb-e4675a5810fc3d0a7d0b1c744f0a1837ccc0507e.tar.bz2 |
elf: Don't set version info on unversioned symbols
Don't set version info on unversioned symbols when seeing a hidden
versioned symbol after an unversioned definition and the default
versioned symbol.
bfd/
PR ld/28348
* elflink.c (elf_link_add_object_symbols): Don't set version info
on unversioned symbols.
ld/
PR ld/28348
* testsuite/ld-elf/pr28348.rd: New file.
* testsuite/ld-elf/pr28348.t: Likewise.
* testsuite/ld-elf/pr28348a.c: Likewise.
* testsuite/ld-elf/pr28348b.c: Likewise.
* testsuite/ld-elf/pr28348c.c: Likewise.
* testsuite/ld-elf/shared.exp: Run PR ld/28348 tests.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/elflink.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bfd/elflink.c b/bfd/elflink.c index 77450c8..dc38548 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -4987,7 +4987,8 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info) || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - if (elf_tdata (abfd)->verdef != NULL + if (h->versioned != unversioned + && elf_tdata (abfd)->verdef != NULL && vernum > 1 && definition) h->verinfo.verdef = &elf_tdata (abfd)->verdef[vernum - 1]; |