brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 52849cc Raw
79 lines · plain
1# REQUIRES: x862# RUN: rm -rf %t; split-file %s %t3# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/libfoo.s -o %t/libfoo.o4# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/test.s -o %t/test.o5# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/bar.s -o %t/bar.o6# RUN: %lld -dylib %t/libfoo.o -o %t/libfoo.dylib -lSystem7# RUN: %lld %t/test.o %t/bar.o %t/libfoo.dylib -o %t/test -lSystem8# RUN: llvm-objdump --macho -d --no-show-raw-insn --indirect-symbols %t/test | FileCheck %s9# RUN: llvm-otool -l %t/test | FileCheck --check-prefix=DYSYMTAB %s10 11# CHECK:      (__TEXT,__text) section12# CHECK-NEXT: _main:13# CHECK-NEXT: movq  {{.*}}(%rip), %rax ## literal pool symbol address: _foo14# CHECK-NEXT: movq  {{.*}}(%rip), %rax ## literal pool symbol address: _bar15# CHECK-NEXT: leaq  _baz(%rip), %rax16# CHECK-NEXT: addq  {{.*}}(%rip), %rax17# CHECK-NEXT: movq  {{.*}}(%rip), %rax ## literal pool symbol address: _foo_tlv18# CHECK-NEXT: movq  {{.*}}(%rip), %rax ## literal pool symbol address: _bar_tlv19# CHECK-NEXT: callq {{.*}} ## symbol stub for: _foo_fn20# CHECK-NEXT: callq {{.*}} ## symbol stub for: _bar_fn21# CHECK-NEXT: retq22 23# CHECK:      Indirect symbols for (__TEXT,__stubs) 2 entries24# CHECK-NEXT: address            index name25# CHECK-NEXT: _bar_fn26# CHECK-NEXT: _foo_fn27# CHECK-NEXT: Indirect symbols for (__DATA_CONST,__got) 4 entries28# CHECK-NEXT: address            index name29# CHECK-NEXT: LOCAL30# CHECK-NEXT: _bar31# CHECK-NEXT: _foo32# CHECK-NEXT: _stub_binder33# CHECK-NEXT: Indirect symbols for (__DATA,__la_symbol_ptr) 2 entries34# CHECK-NEXT: address            index name35# CHECK-NEXT: _bar_fn36# CHECK-NEXT: _foo_fn37# CHECK-NEXT: Indirect symbols for (__DATA,__thread_ptrs) 2 entries38# CHECK-NEXT: address            index name39# CHECK-NEXT: _bar_tlv40# CHECK-NEXT: _foo_tlv41 42# DYSYMTAB: nindirectsyms 1043 44#--- libfoo.s45 46.globl _foo, _foo_fn, _bar, _bar_fn47_foo:48_foo_fn:49_bar:50_bar_fn:51 52.section  __DATA,__thread_vars,thread_local_variables53.globl _foo_tlv, _bar_tlv54_foo_tlv:55_bar_tlv:56 57#--- test.s58 59.globl _main60_main:61  movq _foo@GOTPCREL(%rip), %rax62  movq _bar@GOTPCREL(%rip), %rax63  movq _baz@GOTPCREL(%rip), %rax64  addq _quux@GOTPCREL(%rip), %rax65  mov _foo_tlv@TLVP(%rip), %rax66  mov _bar_tlv@TLVP(%rip), %rax67  callq _foo_fn68  callq _bar_fn69  ret70 71#--- bar.s72.data73.globl _baz,_quux74.private_extern _baz,_quux75_baz:76.asciz "baz"77_quux:78.asciz "quux"79