forked from OSchip/llvm-project
78 lines
2.7 KiB
YAML
78 lines
2.7 KiB
YAML
# RUN: ld64.lld -arch x86_64 -macosx_version_min 10.8 -dylib \
|
|
# RUN: %s %p/Inputs/x86_64/libSystem.yaml -o %t \
|
|
# RUN: -exported_symbols_list %p/Inputs/exported_symbols_list.exp && \
|
|
# RUN: llvm-nm -m %t | FileCheck %s
|
|
#
|
|
# RUN: ld64.lld -arch x86_64 -macosx_version_min 10.8 -dylib \
|
|
# RUN: %s %p/Inputs/x86_64/libSystem.yaml -o %t2 \
|
|
# RUN: -exported_symbol _foo -exported_symbol _b && \
|
|
# RUN: llvm-nm -m %t2 | FileCheck %s
|
|
#
|
|
# RUN: ld64.lld -arch x86_64 -macosx_version_min 10.8 -dylib \
|
|
# RUN: %s %p/Inputs/x86_64/libSystem.yaml -o %t3 \
|
|
# RUN: -unexported_symbol _bar -unexported_symbol _a && \
|
|
# RUN: llvm-nm -m %t3 | FileCheck %s
|
|
#
|
|
# RUN: ld64.lld -arch x86_64 -macosx_version_min 10.8 -dylib \
|
|
# RUN: %s %p/Inputs/x86_64/libSystem.yaml -dead_strip -o %t \
|
|
# RUN: -exported_symbols_list %p/Inputs/exported_symbols_list.exp && \
|
|
# RUN: llvm-nm -m %t | FileCheck -check-prefix=CHECK_DEAD %s
|
|
#
|
|
# Test -exported_symbols_list and -exported_symbol properly changes visibility.
|
|
#
|
|
|
|
--- !mach-o
|
|
arch: x86_64
|
|
file-type: MH_OBJECT
|
|
flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ]
|
|
sections:
|
|
- segment: __TEXT
|
|
section: __text
|
|
type: S_REGULAR
|
|
attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
|
|
address: 0x0000000000000000
|
|
content: [ 0x55, 0x48, 0x89, 0xE5, 0x5D, 0xC3, 0x55, 0x48,
|
|
0x89, 0xE5, 0x5D, 0xC3 ]
|
|
- segment: __DATA
|
|
section: __data
|
|
type: S_REGULAR
|
|
attributes: [ ]
|
|
alignment: 2
|
|
address: 0x000000000000000C
|
|
content: [ 0x0A, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 ]
|
|
|
|
global-symbols:
|
|
- name: _a
|
|
type: N_SECT
|
|
scope: [ N_EXT ]
|
|
sect: 2
|
|
value: 0x000000000000000C
|
|
- name: _b
|
|
type: N_SECT
|
|
scope: [ N_EXT ]
|
|
sect: 2
|
|
value: 0x0000000000000010
|
|
- name: _bar
|
|
type: N_SECT
|
|
scope: [ N_EXT ]
|
|
sect: 1
|
|
value: 0x0000000000000006
|
|
- name: _foo
|
|
type: N_SECT
|
|
scope: [ N_EXT ]
|
|
sect: 1
|
|
value: 0x0000000000000000
|
|
|
|
|
|
...
|
|
|
|
# CHECK: (__DATA,__data) non-external (was a private external) _a
|
|
# CHECK: (__DATA,__data) external _b
|
|
# CHECK: (__TEXT,__text) non-external (was a private external) _bar
|
|
# CHECK: (__TEXT,__text) external _foo
|
|
|
|
# CHECK_DEAD-NOT: (__DATA,__data) non-external (was a private external) _a
|
|
# CHECK_DEAD: (__DATA,__data) external _b
|
|
# CHECK_DEAD-NOT: (__TEXT,__text) non-external (was a private external) _bar
|
|
# CHECK_DEAD: (__TEXT,__text) external _foo
|