elfver.S 649 Bytes
# 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: