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