[PATCH] readelf: Display the base symbol version as empty string

Jan Beulich jbeulich@suse.com
Fri Nov 7 14:32:41 GMT 2025


On 06.11.2025 02:18, H.J. Lu wrote:
> Update readelf to display the base symbol version as
> 
> Symbol table for image contains 5 entries:
>    Num:    Value          Size Type    Bind   Vis      Ndx Name
>      0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
>      1: 0000000000003008     0 OBJECT  GLOBAL DEFAULT   10 bar@@
>      2: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS VERS_1
>      3: 0000000000003008     0 OBJECT  GLOBAL DEFAULT   10 bar@@VERS_1
>      4: 0000000000003000     0 OBJECT  GLOBAL DEFAULT   10 foo@
> 
> instead of
> 
> Symbol table for image contains 5 entries:
>    Num:    Value          Size Type    Bind   Vis      Ndx Name
>      0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
>      1: 0000000000003008     0 OBJECT  GLOBAL DEFAULT   10 bar
>      2: 0000000000000000     0 OBJECT  GLOBAL DEFAULT  ABS VERS_1
>      3: 0000000000003008     0 OBJECT  GLOBAL DEFAULT   10 bar@@VERS_1
>      4: 0000000000003000     0 OBJECT  GLOBAL DEFAULT   10 foo
> 
> That is bar@@ and foo@ vs bar and foo.
> 
> binutils/
> 
> PR binutils/33599
> * readelf.c (process_version_sections): Replace 0x8001 with
> (VERSYM_HIDDEN | VERSYM_BASE).
> (get_symbol_version_string): Likewise.  Return "" for the base
> version.
> 
> include/
> 
> PR binutils/33599
> * elf/common.h (VERSYM_BASE): New.
> 
> ld/
> 
> PR binutils/33599
> * testsuite/ld-elf/pr33599.d: New file.
> * testsuite/ld-elf/pr33599.map: Likewise.
> * testsuite/ld-elf/pr33599.s: Likewise.
> 
> OK for master?

Yes.

Jan


More information about the Binutils mailing list