mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-26 07:29:55 +00:00
This class is responsible for getting the linked data to the disk in the appropriate form. Today it it an empty shell that just instantiates an MC layer. As we do not put anything in the resulting file yet, we just check it has the right architecture (and check that -o does the right thing). To be able to create all the components, this commit adds a few dependencies to llvm-dsymutil, namely all-targets, MC and AsmPrinter. Also add a -no-output option, so that tests that do not need the binary result can continue to run even if they do not have the required target linked in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230824 91177308-0d34-0410-b5e6-96231b3b80d8
150 lines
6.5 KiB
Plaintext
150 lines
6.5 KiB
Plaintext
RUN: llvm-dsymutil -no-output -v -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 | FileCheck %s
|
|
RUN: llvm-dsymutil -no-output -v -oso-prepend-path=%p %p/Inputs/basic-lto.macho.x86_64 | FileCheck %s --check-prefix=CHECK-LTO
|
|
RUN: llvm-dsymutil -no-output -v -oso-prepend-path=%p %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefix=CHECK-ARCHIVE
|
|
|
|
This test check the basic Dwarf linking process through the debug dumps.
|
|
|
|
================================= Simple link ================================
|
|
CHECK: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o
|
|
CHECK: Input compilation unit:
|
|
CHECK-NEXT: TAG_compile_unit
|
|
CHECK-NOT: TAG
|
|
CHECK: AT_name {{.*}}basic1.c
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _main 0000000000000000 => 0000000100000ea0
|
|
CHECK-NEXT: DW_TAG_subprogram
|
|
CHECK-NEXT: DW_AT_name{{.*}}"main"
|
|
|
|
CHECK: DEBUG MAP OBJECT: {{.*}}basic2.macho.x86_64.o
|
|
CHECK: Input compilation unit:
|
|
CHECK-NEXT: TAG_compile_unit
|
|
CHECK-NOT: TAG
|
|
CHECK: AT_name {{.*}}basic2.c
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _private_int 0000000000000560 => 0000000100001008
|
|
CHECK-NEXT: DW_TAG_variable
|
|
CHECK-NEXT: DW_AT_name {{.*}}"private_int"
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _baz 0000000000000310 => 0000000100001000
|
|
CHECK-NEXT: DW_TAG_variable
|
|
CHECK-NEXT: DW_AT_name {{.*}}"baz"
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _foo 0000000000000020 => 0000000100000ed0
|
|
CHECK-NEXT: DW_TAG_subprogram
|
|
CHECK-NEXT: DW_AT_name {{.*}}"foo"
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f20
|
|
CHECK-NEXT: DW_TAG_subprogram
|
|
CHECK-NEXT: DW_AT_name {{.*}}"inc"
|
|
|
|
CHECK: DEBUG MAP OBJECT: {{.*}}basic3.macho.x86_64.o
|
|
CHECK: Input compilation unit:
|
|
CHECK-NEXT: TAG_compile_unit
|
|
CHECK-NOT: TAG
|
|
CHECK: AT_name {{.*}}basic3.c
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _val 0000000000000004 => 0000000100001004
|
|
CHECK-NEXT: DW_TAG_variable
|
|
CHECK-NEXT: DW_AT_name {{.*}}"val"
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _bar 0000000000000020 => 0000000100000f40
|
|
CHECK-NEXT: DW_TAG_subprogram
|
|
CHECK-NEXT: DW_AT_name {{.*}}"bar"
|
|
CHECK-NOT: Found valid debug map entry
|
|
CHECK: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f90
|
|
CHECK-NEXT: DW_TAG_subprogram
|
|
CHECK-NEXT: DW_AT_name {{.*}}"inc")
|
|
|
|
|
|
================================= LTO link ================================
|
|
CHECK-LTO: DEBUG MAP OBJECT: {{.*}}basic-lto.macho.x86_64.o
|
|
CHECK-LTO: Input compilation unit:
|
|
CHECK-LTO-NEXT: TAG_compile_unit
|
|
CHECK-LTO-NOT: TAG
|
|
CHECK-LTO: AT_name {{.*}}basic1.c
|
|
CHECK-LTO: Input compilation unit:
|
|
CHECK-LTO-NEXT: TAG_compile_unit
|
|
CHECK-LTO-NOT: TAG
|
|
CHECK-LTO: AT_name {{.*}}basic2.c
|
|
CHECK-LTO: Input compilation unit:
|
|
CHECK-LTO-NEXT: TAG_compile_unit
|
|
CHECK-LTO-NOT: TAG
|
|
CHECK-LTO: AT_name {{.*}}basic3.c
|
|
|
|
CHECK-LTO-NOT: Found valid debug map entry
|
|
CHECK-LTO: Found valid debug map entry: _main 0000000000000000 => 0000000100000f40
|
|
CHECK-LTO-NEXT: DW_TAG_subprogram
|
|
CHECK-LTO-NEXT: DW_AT_name {{.*}}"main"
|
|
CHECK-LTO-NOT: Found valid debug map entry
|
|
CHECK-LTO: Found valid debug map entry: _private_int 00000000000008e8 => 0000000100001008
|
|
CHECK-LTO-NEXT: DW_TAG_variable
|
|
CHECK-LTO-NEXT: DW_AT_name {{.*}}"private_int"
|
|
CHECK-LTO-NOT: Found valid debug map entry
|
|
CHECK-LTO: Found valid debug map entry: _baz 0000000000000658 => 0000000100001000
|
|
CHECK-LTO-NEXT: DW_TAG_variable
|
|
CHECK-LTO-NEXT: DW_AT_name {{.*}} "baz"
|
|
CHECK-LTO-NOT: Found valid debug map entry
|
|
CHECK-LTO: Found valid debug map entry: _foo 0000000000000010 => 0000000100000f50
|
|
CHECK-LTO-NEXT: DW_TAG_subprogram
|
|
CHECK-LTO-NEXT: DW_AT_name {{.*}}"foo"
|
|
CHECK-LTO-NOT: Found valid debug map entry
|
|
CHECK-LTO: Found valid debug map entry: _val 00000000000008ec => 0000000100001004
|
|
CHECK-LTO-NEXT: DW_TAG_variable
|
|
CHECK-LTO-NEXT: DW_AT_name {{.*}}"val"
|
|
CHECK-LTO-NOT: Found valid debug map entry
|
|
CHECK-LTO: Found valid debug map entry: _bar 0000000000000050 => 0000000100000f90
|
|
CHECK-LTO-NEXT: DW_TAG_subprogram
|
|
CHECK-LTO-NEXT: DW_AT_name {{.*}}"bar"
|
|
|
|
|
|
================================= Archive link ================================
|
|
CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o
|
|
CHECK-ARCHIVE: Input compilation unit:
|
|
CHECK-ARCHIVE-NEXT: TAG_compile_unit
|
|
CHECK-ARCHIVE-NOT: TAG
|
|
CHECK-ARCHIVE: AT_name {{.*}}basic1.c
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _main 0000000000000000 => 0000000100000ea0
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name{{.*}}"main"
|
|
|
|
CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic2.macho.x86_64.o)
|
|
CHECK-ARCHIVE: Input compilation unit:
|
|
CHECK-ARCHIVE-NEXT: TAG_compile_unit
|
|
CHECK-ARCHIVE-NOT: TAG
|
|
CHECK-ARCHIVE: AT_name {{.*}}basic2.c
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _private_int 0000000000000560 => 0000000100001004
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_variable
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"private_int"
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _baz 0000000000000310 => 0000000100001000
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_variable
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"baz"
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _foo 0000000000000020 => 0000000100000ed0
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"foo"
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f20
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"inc"
|
|
|
|
CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic3.macho.x86_64.o)
|
|
CHECK-ARCHIVE: Input compilation unit:
|
|
CHECK-ARCHIVE-NEXT: TAG_compile_unit
|
|
CHECK-ARCHIVE-NOT: TAG
|
|
CHECK-ARCHIVE: AT_name {{.*}}basic3.c
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _val 0000000000000004 => 0000000100001008
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_variable
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"val"
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _bar 0000000000000020 => 0000000100000f40
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"bar"
|
|
CHECK-ARCHIVE-NOT: Found valid debug map entry
|
|
CHECK-ARCHIVE: Found valid debug map entry: _inc 0000000000000070 => 0000000100000f90
|
|
CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
|
|
CHECK-ARCHIVE-NEXT: DW_AT_name {{.*}}"inc")
|