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