1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| # Compile with:
# ARGS="-shared -nostdlib -Wl,--version-script=elfver.script"
# clang $ARGS -m32 elfver.S -lc -o elf-versioning-test.i386
# clang $ARGS -m64 elfver.S -lc -o elf-versioning-test.x86_64
# Also, strip off non-dynamic symbols:
# strip elf-versioning-test.i386
# strip elf-versioning-test.x86_64
#ifdef __i386__
.symver _puts, puts@GLIBC_2.0
#else
.symver _puts, puts@GLIBC_2.2.5
#endif
call _puts@PLT
.symver foo1, foo@VER1
.globl foo1
.type foo1, @function
foo1:
ret
.symver foo2, foo@@VER2
.globl foo2
.type foo2, @function
foo2:
ret
.globl unversioned_define
.type unversioned_define, @function
unversioned_define:
|