diff options
author | dim <dim@FreeBSD.org> | 2012-04-14 13:54:10 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2012-04-14 13:54:10 +0000 |
commit | 1fc08f5e9ef733ef1ce6f363fecedc2260e78974 (patch) | |
tree | 19c69a04768629f2d440944b71cbe90adae0b615 /test/Object | |
parent | 07637c87f826cdf411f0673595e9bc92ebd793f2 (diff) | |
download | FreeBSD-src-1fc08f5e9ef733ef1ce6f363fecedc2260e78974.zip FreeBSD-src-1fc08f5e9ef733ef1ce6f363fecedc2260e78974.tar.gz |
Vendor import of llvm trunk r154661:
http://llvm.org/svn/llvm-project/llvm/trunk@r154661
Diffstat (limited to 'test/Object')
-rw-r--r-- | test/Object/Inputs/archive-test.a-coff-i386 (renamed from test/Object/TestObjectFiles/archive-test.a-coff-i386) | bin | 658 -> 658 bytes | |||
-rwxr-xr-x | test/Object/Inputs/elf-versioning-test.i386 | bin | 0 -> 4832 bytes | |||
-rwxr-xr-x | test/Object/Inputs/elf-versioning-test.x86_64 | bin | 0 -> 5200 bytes | |||
-rw-r--r-- | test/Object/Inputs/elfver.S | 31 | ||||
-rw-r--r-- | test/Object/Inputs/elfver.script | 10 | ||||
-rw-r--r-- | test/Object/Inputs/shared-object-test.elf-i386 | bin | 0 -> 1848 bytes | |||
-rw-r--r-- | test/Object/Inputs/shared-object-test.elf-x86-64 | bin | 0 -> 2760 bytes | |||
-rw-r--r-- | test/Object/Inputs/shared.ll | 33 | ||||
-rw-r--r-- | test/Object/Inputs/trivial-object-test.coff-i386 (renamed from test/Object/TestObjectFiles/trivial-object-test.coff-i386) | bin | 346 -> 346 bytes | |||
-rw-r--r-- | test/Object/Inputs/trivial-object-test.coff-x86-64 (renamed from test/Object/TestObjectFiles/trivial-object-test.coff-x86-64) | bin | 347 -> 347 bytes | |||
-rw-r--r-- | test/Object/Inputs/trivial-object-test.elf-i386 (renamed from test/Object/TestObjectFiles/trivial-object-test.elf-i386) | bin | 716 -> 716 bytes | |||
-rw-r--r-- | test/Object/Inputs/trivial-object-test.elf-x86-64 (renamed from test/Object/TestObjectFiles/trivial-object-test.elf-x86-64) | bin | 1024 -> 1024 bytes | |||
-rw-r--r-- | test/Object/Inputs/trivial-object-test.macho-i386 (renamed from test/Object/TestObjectFiles/trivial-object-test.macho-i386) | bin | 552 -> 552 bytes | |||
-rw-r--r-- | test/Object/Inputs/trivial-object-test.macho-x86-64 (renamed from test/Object/TestObjectFiles/trivial-object-test.macho-x86-64) | bin | 552 -> 552 bytes | |||
-rw-r--r-- | test/Object/Inputs/trivial.ll | 12 | ||||
-rw-r--r-- | test/Object/TestObjectFiles/archive-test.a-bitcode | bin | 790 -> 0 bytes | |||
-rw-r--r-- | test/Object/X86/lit.local.cfg | 6 | ||||
-rw-r--r-- | test/Object/X86/objdump-disassembly-inline-relocations.test (renamed from test/Object/objdump-disassembly-inline-relocations.test) | 4 | ||||
-rw-r--r-- | test/Object/X86/objdump-trivial-object.test (renamed from test/Object/objdump-trivial-object.test) | 8 | ||||
-rw-r--r-- | test/Object/dg.exp | 3 | ||||
-rw-r--r-- | test/Object/lit.local.cfg | 1 | ||||
-rw-r--r-- | test/Object/nm-archive.test | 7 | ||||
-rw-r--r-- | test/Object/nm-shared-object.test | 15 | ||||
-rw-r--r-- | test/Object/nm-trivial-object.test | 22 | ||||
-rw-r--r-- | test/Object/objdump-file-header.test | 18 | ||||
-rw-r--r-- | test/Object/objdump-relocations.test | 8 | ||||
-rw-r--r-- | test/Object/objdump-section-content.test | 20 | ||||
-rw-r--r-- | test/Object/objdump-sectionheaders.test | 2 | ||||
-rw-r--r-- | test/Object/objdump-symbol-table.test | 33 | ||||
-rw-r--r-- | test/Object/readobj-elf-versioning.test | 15 | ||||
-rw-r--r-- | test/Object/readobj-shared-object.test | 59 |
31 files changed, 286 insertions, 21 deletions
diff --git a/test/Object/TestObjectFiles/archive-test.a-coff-i386 b/test/Object/Inputs/archive-test.a-coff-i386 Binary files differindex 846cd63..846cd63 100644 --- a/test/Object/TestObjectFiles/archive-test.a-coff-i386 +++ b/test/Object/Inputs/archive-test.a-coff-i386 diff --git a/test/Object/Inputs/elf-versioning-test.i386 b/test/Object/Inputs/elf-versioning-test.i386 Binary files differnew file mode 100755 index 0000000..c7c1eac --- /dev/null +++ b/test/Object/Inputs/elf-versioning-test.i386 diff --git a/test/Object/Inputs/elf-versioning-test.x86_64 b/test/Object/Inputs/elf-versioning-test.x86_64 Binary files differnew file mode 100755 index 0000000..cba79ba --- /dev/null +++ b/test/Object/Inputs/elf-versioning-test.x86_64 diff --git a/test/Object/Inputs/elfver.S b/test/Object/Inputs/elfver.S new file mode 100644 index 0000000..ba63279 --- /dev/null +++ b/test/Object/Inputs/elfver.S @@ -0,0 +1,31 @@ +# 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: diff --git a/test/Object/Inputs/elfver.script b/test/Object/Inputs/elfver.script new file mode 100644 index 0000000..1316fcb --- /dev/null +++ b/test/Object/Inputs/elfver.script @@ -0,0 +1,10 @@ +VER1 { + global: + foo; +}; + +VER2 { + global: + foo; +} VER1; + diff --git a/test/Object/Inputs/shared-object-test.elf-i386 b/test/Object/Inputs/shared-object-test.elf-i386 Binary files differnew file mode 100644 index 0000000..fb63915 --- /dev/null +++ b/test/Object/Inputs/shared-object-test.elf-i386 diff --git a/test/Object/Inputs/shared-object-test.elf-x86-64 b/test/Object/Inputs/shared-object-test.elf-x86-64 Binary files differnew file mode 100644 index 0000000..92667f5 --- /dev/null +++ b/test/Object/Inputs/shared-object-test.elf-x86-64 diff --git a/test/Object/Inputs/shared.ll b/test/Object/Inputs/shared.ll new file mode 100644 index 0000000..1a62d56 --- /dev/null +++ b/test/Object/Inputs/shared.ll @@ -0,0 +1,33 @@ +; How to make the shared objects from this file: +; +; LDARGS="--unresolved-symbols=ignore-all -soname=libfoo.so --no-as-needed -lc -lm" +; +; X86-32 ELF: +; llc -mtriple=i386-linux-gnu shared.ll -filetype=obj -o tmp32.o -relocation-model=pic +; ld -melf_i386 -shared tmp32.o -o shared-object-test.elf-i386 $LDARGS +; +; X86-64 ELF: +; llc -mtriple=x86_64-linux-gnu shared.ll -filetype=obj -o tmp64.o -relocation-model=pic +; ld -melf_x86_64 -shared tmp64.o -o shared-object-test.elf-x86-64 $LDARGS + +@defined_sym = global i32 1, align 4 + +@tls_sym = thread_local global i32 2, align 4 + +@undef_sym = external global i32 + +@undef_tls_sym = external thread_local global i32 + +@common_sym = common global i32 0, align 4 + +define i32 @global_func() nounwind uwtable { +entry: + ret i32 0 +} + +declare i32 @undef_func(...) + +define internal i32 @local_func() nounwind uwtable { +entry: + ret i32 0 +} diff --git a/test/Object/TestObjectFiles/trivial-object-test.coff-i386 b/test/Object/Inputs/trivial-object-test.coff-i386 Binary files differindex 8cfd994..8cfd994 100644 --- a/test/Object/TestObjectFiles/trivial-object-test.coff-i386 +++ b/test/Object/Inputs/trivial-object-test.coff-i386 diff --git a/test/Object/TestObjectFiles/trivial-object-test.coff-x86-64 b/test/Object/Inputs/trivial-object-test.coff-x86-64 Binary files differindex 0775914..0775914 100644 --- a/test/Object/TestObjectFiles/trivial-object-test.coff-x86-64 +++ b/test/Object/Inputs/trivial-object-test.coff-x86-64 diff --git a/test/Object/TestObjectFiles/trivial-object-test.elf-i386 b/test/Object/Inputs/trivial-object-test.elf-i386 Binary files differindex 1a0ea40..1a0ea40 100644 --- a/test/Object/TestObjectFiles/trivial-object-test.elf-i386 +++ b/test/Object/Inputs/trivial-object-test.elf-i386 diff --git a/test/Object/TestObjectFiles/trivial-object-test.elf-x86-64 b/test/Object/Inputs/trivial-object-test.elf-x86-64 Binary files differindex 889f5d9..889f5d9 100644 --- a/test/Object/TestObjectFiles/trivial-object-test.elf-x86-64 +++ b/test/Object/Inputs/trivial-object-test.elf-x86-64 diff --git a/test/Object/TestObjectFiles/trivial-object-test.macho-i386 b/test/Object/Inputs/trivial-object-test.macho-i386 Binary files differindex 099bd1e..099bd1e 100644 --- a/test/Object/TestObjectFiles/trivial-object-test.macho-i386 +++ b/test/Object/Inputs/trivial-object-test.macho-i386 diff --git a/test/Object/TestObjectFiles/trivial-object-test.macho-x86-64 b/test/Object/Inputs/trivial-object-test.macho-x86-64 Binary files differindex 93eeb5d..93eeb5d 100644 --- a/test/Object/TestObjectFiles/trivial-object-test.macho-x86-64 +++ b/test/Object/Inputs/trivial-object-test.macho-x86-64 diff --git a/test/Object/Inputs/trivial.ll b/test/Object/Inputs/trivial.ll new file mode 100644 index 0000000..25ece76 --- /dev/null +++ b/test/Object/Inputs/trivial.ll @@ -0,0 +1,12 @@ +@.str = private unnamed_addr constant [13 x i8] c"Hello World\0A\00", align 1 + +define i32 @main() nounwind { +entry: + %call = tail call i32 @puts(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0)) nounwind + tail call void bitcast (void (...)* @SomeOtherFunction to void ()*)() nounwind + ret i32 0 +} + +declare i32 @puts(i8* nocapture) nounwind + +declare void @SomeOtherFunction(...) diff --git a/test/Object/TestObjectFiles/archive-test.a-bitcode b/test/Object/TestObjectFiles/archive-test.a-bitcode Binary files differdeleted file mode 100644 index 3aeb34f..0000000 --- a/test/Object/TestObjectFiles/archive-test.a-bitcode +++ /dev/null diff --git a/test/Object/X86/lit.local.cfg b/test/Object/X86/lit.local.cfg new file mode 100644 index 0000000..6a29e92 --- /dev/null +++ b/test/Object/X86/lit.local.cfg @@ -0,0 +1,6 @@ +config.suffixes = ['.test'] + +targets = set(config.root.targets_to_build.split()) +if not 'X86' in targets: + config.unsupported = True + diff --git a/test/Object/objdump-disassembly-inline-relocations.test b/test/Object/X86/objdump-disassembly-inline-relocations.test index 91f2e48..a5875f6a 100644 --- a/test/Object/objdump-disassembly-inline-relocations.test +++ b/test/Object/X86/objdump-disassembly-inline-relocations.test @@ -1,6 +1,6 @@ -RUN: llvm-objdump -d -r %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF-i386 -RUN: llvm-objdump -d -r %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.coff-x86-64 \ RUN: | FileCheck %s -check-prefix COFF-x86-64 COFF-i386: file format COFF-i386 diff --git a/test/Object/objdump-trivial-object.test b/test/Object/X86/objdump-trivial-object.test index c4855fd..8f9ea97 100644 --- a/test/Object/objdump-trivial-object.test +++ b/test/Object/X86/objdump-trivial-object.test @@ -1,10 +1,10 @@ -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: llvm-objdump -d %p/../Inputs/trivial-object-test.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF-i386 -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: llvm-objdump -d %p/../Inputs/trivial-object-test.coff-x86-64 \ RUN: | FileCheck %s -check-prefix COFF-x86-64 -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.elf-i386 \ +RUN: llvm-objdump -d %p/../Inputs/trivial-object-test.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF-i386 -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +RUN: llvm-objdump -d %p/../Inputs/trivial-object-test.elf-x86-64 \ RUN: | FileCheck %s -check-prefix ELF-x86-64 COFF-i386: file format COFF-i386 diff --git a/test/Object/dg.exp b/test/Object/dg.exp deleted file mode 100644 index be82c51..0000000 --- a/test/Object/dg.exp +++ /dev/null @@ -1,3 +0,0 @@ -load_lib llvm.exp - -RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{test}]] diff --git a/test/Object/lit.local.cfg b/test/Object/lit.local.cfg new file mode 100644 index 0000000..df9b335 --- /dev/null +++ b/test/Object/lit.local.cfg @@ -0,0 +1 @@ +config.suffixes = ['.test'] diff --git a/test/Object/nm-archive.test b/test/Object/nm-archive.test index da6144e..2d96b73 100644 --- a/test/Object/nm-archive.test +++ b/test/Object/nm-archive.test @@ -1,7 +1,8 @@ -RUN: llvm-nm %p/TestObjectFiles/archive-test.a-coff-i386 \ +RUN: llvm-nm %p/Inputs/archive-test.a-coff-i386 \ RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-nm %p/TestObjectFiles/archive-test.a-bitcode \ -RUN: | FileCheck %s -check-prefix BITCODE +RUN: llvm-as %p/Inputs/trivial.ll -o=%t1 +RUN: llvm-ar rcs %t2 %t1 +RUN: llvm-nm %t2 | FileCheck %s -check-prefix BITCODE COFF: trivial-object-test.coff-i386: diff --git a/test/Object/nm-shared-object.test b/test/Object/nm-shared-object.test new file mode 100644 index 0000000..b361df5 --- /dev/null +++ b/test/Object/nm-shared-object.test @@ -0,0 +1,15 @@ +RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF + +; Note: tls_sym should be 'D' (not '?'), but TLS is not +; yet recognized by ObjectFile. + +ELF: {{[0-9a-f]+}} A __bss_start +ELF: {{[0-9a-f]+}} A _edata +ELF: {{[0-9a-f]+}} A _end +ELF: {{[0-9a-f]+}} B common_sym +ELF: {{[0-9a-f]+}} D defined_sym +ELF: {{[0-9a-f]+}} T global_func +ELF: ? tls_sym diff --git a/test/Object/nm-trivial-object.test b/test/Object/nm-trivial-object.test index 6de1780..e5635ab 100644 --- a/test/Object/nm-trivial-object.test +++ b/test/Object/nm-trivial-object.test @@ -1,11 +1,15 @@ -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: llvm-nm %p/Inputs/trivial-object-test.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: llvm-nm %p/Inputs/trivial-object-test.coff-x86-64 \ RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.elf-i386 \ +RUN: llvm-nm %p/Inputs/trivial-object-test.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +RUN: llvm-nm %p/Inputs/trivial-object-test.elf-x86-64 \ RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-nm %p/Inputs/trivial-object-test.macho-i386 \ +RUN: | FileCheck %s -check-prefix macho +RUN: llvm-nm %p/Inputs/trivial-object-test.macho-x86-64 \ +RUN: | FileCheck %s -check-prefix macho64 COFF: 00000000 d .data COFF: 00000000 t .text @@ -17,3 +21,13 @@ COFF: U {{_?}}puts ELF: U SomeOtherFunction ELF: 00000000 T main ELF: U puts + + +macho: 00000000 U _SomeOtherFunction +macho: 00000000 s _main +macho: 00000000 U _puts + +macho64: 00000028 s L_.str +macho64: 00000000 u _SomeOtherFunction +macho64: 00000000 s _main +macho64: 00000000 u _puts
\ No newline at end of file diff --git a/test/Object/objdump-file-header.test b/test/Object/objdump-file-header.test new file mode 100644 index 0000000..3fce3f4 --- /dev/null +++ b/test/Object/objdump-file-header.test @@ -0,0 +1,18 @@ +RUN: llvm-objdump -f %p/Inputs/trivial-object-test.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF-i386 +RUN: llvm-objdump -f %p/Inputs/trivial-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF-i386 + +XFAIL: * + +COFF-i386: : file format +COFF-i386: architecture: i386 +COFF-i386: HAS_RELOC +COFF-i386: HAS_SYMS +COFF-i386: start address 0x + +ELF-i386: : file format elf +ELF-i386: architecture: i386 +ELF-i386: HAS_RELOC +ELF-i386: HAS_SYMS +ELF-i386: start address 0x diff --git a/test/Object/objdump-relocations.test b/test/Object/objdump-relocations.test index 2dcdb43..c4b564e 100644 --- a/test/Object/objdump-relocations.test +++ b/test/Object/objdump-relocations.test @@ -1,10 +1,10 @@ -RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: llvm-objdump -r %p/Inputs/trivial-object-test.coff-i386 \ RUN: | FileCheck %s -check-prefix COFF-i386 -RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: llvm-objdump -r %p/Inputs/trivial-object-test.coff-x86-64 \ RUN: | FileCheck %s -check-prefix COFF-x86-64 -RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.elf-i386 \ +RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF-i386 -RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-x86-64 \ RUN: | FileCheck %s -check-prefix ELF-x86-64 COFF-i386: .text diff --git a/test/Object/objdump-section-content.test b/test/Object/objdump-section-content.test new file mode 100644 index 0000000..581e75e --- /dev/null +++ b/test/Object/objdump-section-content.test @@ -0,0 +1,20 @@ +RUN: llvm-objdump -s %p/Inputs/trivial-object-test.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF-i386 +RUN: llvm-objdump -s %p/Inputs/trivial-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF-i386 + +COFF-i386: trivial-object-test.coff-i386: file format +COFF-i386: Contents of section .text: +COFF-i386: 0000 83ec0cc7 44240800 000000c7 04240000 ....D$.......$.. +COFF-i386: 0010 0000e800 000000e8 00000000 8b442408 .............D$. +COFF-i386: 0020 83c40cc3 .... +COFF-i386: Contents of section .data: +COFF-i386: 0000 48656c6c 6f20576f 726c6421 00 Hello World!. + +ELF-i386: trivial-object-test.elf-i386: file format +ELF-i386: Contents of section .text: +ELF-i386: 0000 83ec0cc7 44240800 000000c7 04240000 ....D$.......$.. +ELF-i386: 0010 0000e8fc ffffffe8 fcffffff 8b442408 .............D$. +ELF-i386: 0020 83c40cc3 .... +ELF-i386: Contents of section .rodata.str1.1: +ELF-i386: 0024 48656c6c 6f20576f 726c6421 00 Hello World!. diff --git a/test/Object/objdump-sectionheaders.test b/test/Object/objdump-sectionheaders.test index 4515d00..a417d07 100644 --- a/test/Object/objdump-sectionheaders.test +++ b/test/Object/objdump-sectionheaders.test @@ -1,4 +1,4 @@ -; RUN: llvm-objdump -h %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +; RUN: llvm-objdump -h %p/Inputs/trivial-object-test.elf-x86-64 \ ; RUN: | FileCheck %s ; To verify this, use readelf -S, not objdump -h. Binutils objdump filters the diff --git a/test/Object/objdump-symbol-table.test b/test/Object/objdump-symbol-table.test new file mode 100644 index 0000000..8a0f440 --- /dev/null +++ b/test/Object/objdump-symbol-table.test @@ -0,0 +1,33 @@ +RUN: llvm-objdump -t %p/Inputs/trivial-object-test.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF-i386 +RUN: llvm-objdump -t %p/Inputs/trivial-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF-i386 +RUN: llvm-objdump -t %p/Inputs/trivial-object-test.macho-i386 \ +RUN: | FileCheck %s -check-prefix macho-i386 + +COFF-i386: trivial-object-test.coff-i386: file format +COFF-i386: SYMBOL TABLE: +COFF-i386: [ 0](sec 1)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .text +COFF-i386: AUX scnlen 0x24 nreloc 3 nlnno 0 checksum 0x0 assoc 1 comdat 0 +COFF-i386: [ 2](sec 2)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .data +COFF-i386: AUX scnlen 0xd nreloc 0 nlnno 0 checksum 0x0 assoc 2 comdat 0 +COFF-i386: [ 4](sec 1)(fl 0x00)(ty 200)(scl 2) (nx 0) 0x00000000 _main +COFF-i386: [ 5](sec 2)(fl 0x00)(ty 0)(scl 3) (nx 0) 0x00000000 L_.str +COFF-i386: [ 6](sec 0)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 _puts +COFF-i386: [ 7](sec 0)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 _SomeOtherFunction + +ELF-i386: trivial-object-test.elf-i386: file format +ELF-i386: SYMBOL TABLE: +ELF-i386: 00000000 l df *ABS* 00000000 trivial-object-test.s +ELF-i386: 00000000 l d .text 00000000 .text +ELF-i386: 00000024 l d .rodata.str1.1 00000000 .rodata.str1.1 +ELF-i386: 00000031 l d .note.GNU-stack 00000000 .note.GNU-stack +ELF-i386: 00000000 g F .text 00000024 main +ELF-i386: 00000000 *UND* 00000000 SomeOtherFunction +ELF-i386: 00000000 *UND* 00000000 puts + +macho-i386: trivial-object-test.macho-i386: file format Mach-O 32-bit i386 +macho-i386: SYMBOL TABLE: +macho-i386: 00000000 g F __TEXT,__text 00000024 _main +macho-i386: 00000000 *UND* 00000000 _SomeOtherFunction +macho-i386: 00000000 *UND* 00000000 _puts
\ No newline at end of file diff --git a/test/Object/readobj-elf-versioning.test b/test/Object/readobj-elf-versioning.test new file mode 100644 index 0000000..0906f34 --- /dev/null +++ b/test/Object/readobj-elf-versioning.test @@ -0,0 +1,15 @@ +RUN: llvm-readobj %p/Inputs/elf-versioning-test.i386 \ +RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-readobj %p/Inputs/elf-versioning-test.i386 \ +RUN: | FileCheck %s -check-prefix ELF32 +RUN: llvm-readobj %p/Inputs/elf-versioning-test.x86_64 \ +RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-readobj %p/Inputs/elf-versioning-test.x86_64 \ +RUN: | FileCheck %s -check-prefix ELF64 + +ELF: foo@@VER2 FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: foo@VER1 FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: unversioned_define FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global + +ELF32: puts@GLIBC_2.0 FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} undef,global +ELF64: puts@GLIBC_2.2.5 FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} undef,global diff --git a/test/Object/readobj-shared-object.test b/test/Object/readobj-shared-object.test new file mode 100644 index 0000000..3b5457c --- /dev/null +++ b/test/Object/readobj-shared-object.test @@ -0,0 +1,59 @@ +RUN: llvm-readobj %p/Inputs/shared-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-readobj %p/Inputs/shared-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF32 + +RUN: llvm-readobj %p/Inputs/shared-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-readobj %p/Inputs/shared-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF64 + +ELF64:File Format : ELF64-x86-64 +ELF64:Arch : x86_64 +ELF64:Address Size: 64 bits +ELF64:Load Name : libfoo.so + +ELF32:File Format : ELF32-i386 +ELF32:Arch : i386 +ELF32:Address Size: 32 bits +ELF32:Load Name : libfoo.so + +ELF:Symbols: +ELF: .dynsym DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .dynstr DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .text DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .eh_frame DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .tdata DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .dynamic DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .got.plt DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .data DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: .bss DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific +ELF: shared.ll FILE {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} absolute,formatspecific +ELF: local_func FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} +ELF: _GLOBAL_OFFSET_TABLE_ DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} absolute +ELF: _DYNAMIC DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} absolute +ELF: common_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: tls_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,threadlocal +ELF: defined_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: __bss_start ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute +ELF: _end ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute +ELF: global_func FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: _edata ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute +ELF: Total: 21 + +ELF:Dynamic Symbols: +ELF: common_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: tls_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,threadlocal +ELF: defined_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: __bss_start ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute +ELF: _end ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute +ELF: global_func FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global +ELF: _edata ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute +ELF: Total: {{[0-9a-f]+}} + +ELF:Libraries needed: +ELF: libc.so.6 +ELF: libm.so.6 +ELF: Total: 2 + + |