.symver GAS directive and local symbols
Florian Weimer
fw@deneb.enyo.de
Fri Nov 15 10:43:00 GMT 2019
Jan noticed that if you start out with a local alias of a global
symbol and apply symbol version to that, you get a local symbol:
.globl foo
.type foo, @function
.size foo, 4
foo:
.long 0
.set foo.symver.1, foo
.symver foo.symver.1, foo@VER
Symbol table '.symtab' contains 7 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
1: 0000000000000000 0 SECTION LOCAL DEFAULT 1
2: 0000000000000000 0 SECTION LOCAL DEFAULT 2
3: 0000000000000000 0 SECTION LOCAL DEFAULT 3
4: 0000000000000000 4 FUNC LOCAL DEFAULT 1 foo.symver.1
5: 0000000000000000 4 FUNC LOCAL DEFAULT 1 foo@VER
6: 0000000000000000 4 FUNC GLOBAL DEFAULT 1 foo
Is there a good reason for this behavior?
What we really want to do is to export the same symbol at multiple
versions, like this:
.symver foo, foo@VER1
.symver foo, foo@VER2
But GAS explicitly rejects that.
More information about the Binutils
mailing list