12d70e263c2b508bf4641273dd89a23149f6f6164David Meyer# Compile with: 22d70e263c2b508bf4641273dd89a23149f6f6164David Meyer# ARGS="-shared -nostdlib -Wl,--version-script=elfver.script" 32d70e263c2b508bf4641273dd89a23149f6f6164David Meyer# clang $ARGS -m32 elfver.S -lc -o elf-versioning-test.i386 42d70e263c2b508bf4641273dd89a23149f6f6164David Meyer# clang $ARGS -m64 elfver.S -lc -o elf-versioning-test.x86_64 52d70e263c2b508bf4641273dd89a23149f6f6164David Meyer 62d70e263c2b508bf4641273dd89a23149f6f6164David Meyer# Also, strip off non-dynamic symbols: 72d70e263c2b508bf4641273dd89a23149f6f6164David Meyer# strip elf-versioning-test.i386 82d70e263c2b508bf4641273dd89a23149f6f6164David Meyer# strip elf-versioning-test.x86_64 92d70e263c2b508bf4641273dd89a23149f6f6164David Meyer 102d70e263c2b508bf4641273dd89a23149f6f6164David Meyer#ifdef __i386__ 112d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.symver _puts, puts@GLIBC_2.0 122d70e263c2b508bf4641273dd89a23149f6f6164David Meyer#else 132d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.symver _puts, puts@GLIBC_2.2.5 142d70e263c2b508bf4641273dd89a23149f6f6164David Meyer#endif 152d70e263c2b508bf4641273dd89a23149f6f6164David Meyercall _puts@PLT 162d70e263c2b508bf4641273dd89a23149f6f6164David Meyer 172d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.symver foo1, foo@VER1 182d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.globl foo1 192d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.type foo1, @function 202d70e263c2b508bf4641273dd89a23149f6f6164David Meyerfoo1: 212d70e263c2b508bf4641273dd89a23149f6f6164David Meyer ret 222d70e263c2b508bf4641273dd89a23149f6f6164David Meyer 232d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.symver foo2, foo@@VER2 242d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.globl foo2 252d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.type foo2, @function 262d70e263c2b508bf4641273dd89a23149f6f6164David Meyerfoo2: 272d70e263c2b508bf4641273dd89a23149f6f6164David Meyer ret 282d70e263c2b508bf4641273dd89a23149f6f6164David Meyer 292d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.globl unversioned_define 302d70e263c2b508bf4641273dd89a23149f6f6164David Meyer.type unversioned_define, @function 312d70e263c2b508bf4641273dd89a23149f6f6164David Meyerunversioned_define: 32