Summary: As mentioned in https://reviews.llvm.org/D81326#2093931, I'm not sure it makes sense to use the default target triple to determine -arch. Long-term we should probably detect it from the input object files, but in the meantime it would be nice not to have to add it to all our tests by using a convenient default. Reviewers: #lld-macho Subscribers: arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81983
45 lines
1.9 KiB
ArmAsm
45 lines
1.9 KiB
ArmAsm
# REQUIRES: x86
|
|
# RUN: mkdir -p %t
|
|
# RUN: echo '.globl _foo, _bar, _baz; _foo: _bar: _baz:' | \
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t/libresolution.o
|
|
# RUN: lld -flavor darwinnew -dylib -install_name \
|
|
# RUN: @executable_path/libresolution.dylib %t/libresolution.o -o %t/libresolution.dylib
|
|
# RUN: lld -flavor darwinnew -dylib -install_name \
|
|
# RUN: @executable_path/libresolution2.dylib %t/libresolution.o -o %t/libresolution2.dylib
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t/resolution.o
|
|
|
|
## Check that we select the symbol defined in the first dylib passed on the
|
|
## command line.
|
|
# RUN: lld -flavor darwinnew -o %t/dylib-first -Z -L%t -lresolution -lresolution2 %t/resolution.o
|
|
# RUN: llvm-objdump --macho --bind %t/dylib-first | FileCheck %s --check-prefix=DYLIB-FIRST
|
|
# DYLIB-FIRST: libresolution _foo
|
|
|
|
# RUN: lld -flavor darwinnew -o %t/dylib2-first -Z -L%t -lresolution2 -lresolution %t/resolution.o
|
|
# RUN: llvm-objdump --macho --bind %t/dylib2-first | FileCheck %s --check-prefix=DYLIB2-FIRST
|
|
# DYLIB2-FIRST: libresolution2 _foo
|
|
|
|
## Also check that defined symbols take precedence over dylib symbols.
|
|
# DYLIB-FIRST-NOT: libresolution _bar
|
|
# DYLIB-FIRST-NOT: libresolution _baz
|
|
|
|
## Check that we pick the dylib symbol over the undefined symbol in the object
|
|
## file, even if the object file appears first on the command line.
|
|
# RUN: lld -flavor darwinnew -o %t/obj-first -Z -L%t %t/resolution.o -lresolution
|
|
# RUN: llvm-objdump --macho --bind %t/obj-first | FileCheck %s --check-prefix=OBJ-FIRST
|
|
# OBJ-FIRST: libresolution _foo
|
|
## But defined symbols should still take precedence.
|
|
# OBJ-FIRST-NOT: libresolution _bar
|
|
# OBJ-FIRST-NOT: libresolution _baz
|
|
|
|
.globl _main, _bar
|
|
# Global defined symbol
|
|
_bar:
|
|
# Local defined symbol
|
|
_baz:
|
|
|
|
_main:
|
|
movq _foo@GOTPCREL(%rip), %rsi
|
|
movq _bar@GOTPCREL(%rip), %rsi
|
|
movq _baz@GOTPCREL(%rip), %rsi
|
|
ret
|