aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-09-18 09:12:27 -0700
committerH.J. Lu <hjl.tools@gmail.com>2021-09-19 07:19:39 -0700
commite4675a5810fc3d0a7d0b1c744f0a1837ccc0507e (patch)
tree0b4614c66e6c46feb1d0bf3b7252d0c771139724 /bfd/elflink.c
parent034ce7b42a1da639979fd743d8b9b1fb86c22d1c (diff)
downloadbinutils-e4675a5810fc3d0a7d0b1c744f0a1837ccc0507e.zip
binutils-e4675a5810fc3d0a7d0b1c744f0a1837ccc0507e.tar.gz
binutils-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/elflink.c')
-rw-r--r--bfd/elflink.c3
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];