mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
2d70e263c2
* Add enums and structures for GNU version information. * Implement extraction of that information on a per-symbol basis (ELFObjectFile::getSymbolVersion). * Implement a generic interface, GetELFSymbolVersion(), for getting the symbol version from the ObjectFile (hides the templating). * Have llvm-readobj print out the version, when available. * Add a test for the new feature: readobj-elf-versioning.test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152436 91177308-0d34-0410-b5e6-96231b3b80d8
32 lines
649 B
ArmAsm
32 lines
649 B
ArmAsm
# 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:
|