mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-30 16:17:05 +00:00 
			
		
		
		
	* 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:
 |