blob: 22f4795d79dc0ce7bd4cab95077eaf42f8521c66 [file] [edit]
# REQUIRES: aarch64
# RUN: rm -rf %t; split-file %s %t
# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos11.0 %t/obj-rival.s -o %t/obj-rival.o
# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos11.0 %t/dylib.s -o %t/dylib.o
# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos11.0 %t/test.s -o %t/test.o
# RUN: %no-lsystem-lld -arch arm64 -dylib -o %t/libfoo.dylib %t/dylib.o
## Object file appears before dylib. Symbols should be resolved to the object file.
## This should hold even with --read-workers enabled.
# RUN: %lld -arch arm64 -lSystem %t/test.o %t/obj-rival.o %t/libfoo.dylib -o %t/test.out --read-workers=2
# RUN: llvm-nm %t/test.out | FileCheck %s
# CHECK-DAG: {{[0-9a-f]+}} {{[ST]}} _foo
# CHECK-DAG: {{[0-9a-f]+}} T _main
## Verify _foo came from the object file and not the dylib by checking its section
# RUN: llvm-objdump --syms --macho %t/test.out | FileCheck %s --check-prefix SECTION
# SECTION: __TEXT,obj_foo _foo
#--- obj-rival.s
.globl _foo
.section __TEXT,obj_foo
_foo:
ret
#--- dylib.s
.globl _foo
.section __TEXT,dylib_foo
_foo:
ret
#--- test.s
.globl _main
_main:
bl _foo
ret