mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-11 07:15:26 +00:00
![Rui Ueyama](/assets/img/avatar_default.png)
This patch includes a fix for a llvm-readobj test. With this patch, the tool does no longer print out COFF headers for the short import file, but that's probably desirable because the header for the short import file is dummy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246283 91177308-0d34-0410-b5e6-96231b3b80d8
119 lines
4.2 KiB
Plaintext
119 lines
4.2 KiB
Plaintext
RUN: rm -f %t.a
|
|
RUN: llvm-ar rcsU %t.a %p/Inputs/trivial-object-test.elf-x86-64 %p/Inputs/trivial-object-test2.elf-x86-64
|
|
RUN: llvm-nm -M %t.a | FileCheck %s
|
|
|
|
CHECK: Archive map
|
|
CHECK-NEXT: main in trivial-object-test.elf-x86-64
|
|
CHECK-NEXT: foo in trivial-object-test2.elf-x86-64
|
|
CHECK-NEXT: main in trivial-object-test2.elf-x86-64
|
|
CHECK-NOT: bar
|
|
|
|
|
|
RUN: rm -f %t.a
|
|
RUN: llvm-ar --format=gnu rcT %t.a %p/Inputs/trivial-object-test.elf-x86-64 %p/Inputs/trivial-object-test2.elf-x86-64
|
|
RUN: llvm-nm -M %t.a | FileCheck --check-prefix=THIN %s
|
|
|
|
THIN: Archive map
|
|
THIN-NEXT: main in {{.*}}/Inputs/trivial-object-test.elf-x86-64
|
|
THIN-NEXT: foo in {{.*}}/Inputs/trivial-object-test2.elf-x86-64
|
|
THIN-NEXT: main in {{.*}}/Inputs/trivial-object-test2.elf-x86-64
|
|
|
|
|
|
CHECK: trivial-object-test.elf-x86-64:
|
|
CHECK-NEXT: U SomeOtherFunction
|
|
CHECK-NEXT: 0000000000000000 T main
|
|
CHECK-NEXT: U puts
|
|
|
|
CHECK: trivial-object-test2.elf-x86-64:
|
|
CHECK-NEXT: 0000000000000000 t bar
|
|
CHECK-NEXT: 0000000000000006 T foo
|
|
CHECK-NEXT: 0000000000000016 T main
|
|
|
|
RUN: rm -f %t.a
|
|
RUN: llvm-ar rcSU %t.a %p/Inputs/trivial-object-test.elf-x86-64 %p/Inputs/trivial-object-test2.elf-x86-64
|
|
RUN: llvm-nm -M %t.a | FileCheck %s --check-prefix=NOMAP
|
|
|
|
NOMAP-NOT: Archive map
|
|
|
|
RUN: llvm-ar s %t.a
|
|
RUN: llvm-nm -M %t.a | FileCheck %s
|
|
|
|
check that the archive does have a corrupt symbol table.
|
|
RUN: rm -f %t.a
|
|
RUN: cp %p/Inputs/archive-test.a-corrupt-symbol-table %t.a
|
|
RUN: llvm-nm -M %t.a | FileCheck %s --check-prefix=CORRUPT
|
|
|
|
CORRUPT: Archive map
|
|
CORRUPT-NEXT: mbin in trivial-object-test.elf-x86-64
|
|
CORRUPT-NEXT: foo in trivial-object-test2.elf-x86-64
|
|
CORRUPT-NEXT: main in trivial-object-test2.elf-x86-64
|
|
|
|
CORRUPT: trivial-object-test.elf-x86-64:
|
|
CORRUPT-NEXT: U SomeOtherFunction
|
|
CORRUPT-NEXT: 0000000000000000 T main
|
|
CORRUPT-NEXT: U puts
|
|
|
|
CORRUPT: trivial-object-test2.elf-x86-64:
|
|
CORRUPT-NEXT: 0000000000000000 t bar
|
|
CORRUPT-NEXT: 0000000000000006 T foo
|
|
CORRUPT-NEXT: 0000000000000016 T main
|
|
|
|
check that the we *don't* update the symbol table.
|
|
RUN: llvm-ar s %t.a
|
|
RUN: llvm-nm -M %t.a | FileCheck %s --check-prefix=CORRUPT
|
|
|
|
repeate the test with llvm-ranlib
|
|
|
|
RUN: rm -f %t.a
|
|
RUN: llvm-ar rcSU %t.a %p/Inputs/trivial-object-test.elf-x86-64 %p/Inputs/trivial-object-test2.elf-x86-64
|
|
RUN: llvm-nm -M %t.a | FileCheck %s --check-prefix=NOMAP
|
|
|
|
RUN: llvm-ranlib %t.a
|
|
RUN: llvm-nm -M %t.a | FileCheck %s
|
|
|
|
RUN: llvm-nm -M %p/Inputs/macho-archive-x86_64.a | FileCheck %s --check-prefix=BSD-MachO
|
|
RUN: llvm-nm -M %p/Inputs/macho-archive-unsorted-x86_64.a | FileCheck %s --check-prefix=BSD-MachO
|
|
|
|
BSD-MachO: Archive map
|
|
BSD-MachO: _bar in bar.o
|
|
BSD-MachO: _foo in foo.o
|
|
|
|
RUN: rm -f %t.a
|
|
RUN: llvm-ar --format=bsd rcsU %t.a %p/Inputs/trivial-object-test.macho-x86-64 %p/Inputs/trivial-object-test2.macho-x86-64
|
|
RUN: llvm-nm -M %t.a | FileCheck --check-prefix=MACHO %s
|
|
|
|
MACHO: Archive map
|
|
MACHO-NEXT: _main in trivial-object-test.macho-x86-64
|
|
MACHO-NEXT: _foo in trivial-object-test2.macho-x86-64
|
|
MACHO-NEXT: _main in trivial-object-test2.macho-x86-64
|
|
MACHO-NOT: bar
|
|
|
|
MACHO: trivial-object-test.macho-x86-64
|
|
MACHO-NEXT: 0000000000000028 s L_.str
|
|
MACHO-NEXT: U _SomeOtherFunction
|
|
MACHO-NEXT: 0000000000000000 T _main
|
|
MACHO-NEXT: U _puts
|
|
|
|
MACHO: trivial-object-test2.macho-x86-64
|
|
MACHO-NEXT: 0000000000000000 t _bar
|
|
MACHO-NEXT: 0000000000000001 T _foo
|
|
MACHO-NEXT: 0000000000000002 T _main
|
|
|
|
RUN: rm -f %t.a
|
|
RUN: llvm-ar --format=gnu rcsU %t.a %p/Inputs/coff-short-import-code %p/Inputs/coff-short-import-data
|
|
RUN: llvm-nm -M %t.a | FileCheck --check-prefix=COFF-SHORT-IMPORT %s
|
|
|
|
COFF-SHORT-IMPORT: Archive map
|
|
COFF-SHORT-IMPORT-NEXT: _foo in coff-short-import-code
|
|
COFF-SHORT-IMPORT-NEXT: __imp__foo in coff-short-import-code
|
|
COFF-SHORT-IMPORT-NEXT: _bar in coff-short-import-data
|
|
COFF-SHORT-IMPORT-NOT: __imp__bar in coff-short-import-data
|
|
|
|
Test that we pad the symbol table so that it ends in a multiple of 4 bytes:
|
|
8 + 60 + 36 == 104
|
|
RUN: rm -f %t.a
|
|
RUN: llvm-ar --format=bsd rcsU %t.a %p/Inputs/trivial-object-test.macho-x86-64
|
|
RUN: FileCheck --check-prefix=MACHO-SYMTAB-ALIGN %s < %t.a
|
|
MACHO-SYMTAB-ALIGN: !<arch>
|
|
MACHO-SYMTAB-ALIGN-NEXT: #1/12 {{..........}} 0 0 0 36 `
|