| # 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: |