[binutils-gdb] Use version index 1 for defined symbols
Michael Matz
matz@sourceware.org
Mon Nov 24 14:33:53 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=78894bcb483d45c4d7be5ef9499ec017a9727079
commit 78894bcb483d45c4d7be5ef9499ec017a9727079
Author: Michael Matz <matz@suse.de>
Date: Wed Nov 19 16:32:51 2025 +0100
Use version index 1 for defined symbols
It's reasonable to use version index 0 for undefined
symbols, so let's continue doing that. For defined (global)
symbols that aren't otherwise versioned continue using
VER_NDX_GLOBAL (partly reverting behaviour introduced in
commit f685e395).
bfd/
PR ld/33577
* elflink.c (elf_link_output_extsym): Don't set noversion
for defined syms.
ld/
PR ld/33577
* ld-elfvers/vers16.dsym: Add back the "Base" version for
defined syms.
Diff:
---
bfd/elflink.c | 8 +-------
ld/testsuite/ld-elfvers/vers16.dsym | 2 +-
2 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/bfd/elflink.c b/bfd/elflink.c
index b72faff7fd8..96497ac1c33 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -11158,13 +11158,7 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data)
else
{
if (h->verinfo.vertree == NULL)
- {
- iversym.vs_vers = 1;
- if (elf_tdata (flinfo->output_bfd)->cverdefs == 0)
- /* Defined symbol has no version if there is no
- linker version script. */
- noversion = true;
- }
+ iversym.vs_vers = 1;
else
iversym.vs_vers = h->verinfo.vertree->vernum + 1;
if (flinfo->info->create_default_symver)
diff --git a/ld/testsuite/ld-elfvers/vers16.dsym b/ld/testsuite/ld-elfvers/vers16.dsym
index 076d0eb07ed..a32abd7aad9 100644
--- a/ld/testsuite/ld-elfvers/vers16.dsym
+++ b/ld/testsuite/ld-elfvers/vers16.dsym
@@ -1,2 +1,2 @@
-[0-9a-f]+ g +DF (\.text|\.opd|\*ABS\*) [0-9a-f]+ +(0x[0-9a-f]+ )?_?show_bar
+[0-9a-f]+ g +DF (\.text|\.opd|\*ABS\*) [0-9a-f]+( +Base +)? +(0x[0-9a-f]+ )?_?show_bar
[0-9a-f]+ +DF \*UND\* [0-9a-f]+ +(0x[0-9a-f]+ )?_?show_foo
More information about the Binutils-cvs
mailing list