llvm-project/lld/test/mach-o/sectalign.yaml
Nick Kledzik ebf09360ec [mach-o] Fix stub generation to work for dylibs and bundles
Split up the CRuntimeFile into one part for output types that need an entry
point and another part for output types that use stubs.

Add file 'test/mach-o/Inputs/libSystem.yaml' for use by test cases that
use -dylib and therefore may now need the helper symbol in libSystem.dylib.

llvm-svn: 215602
2014-08-13 23:31:07 +00:00

81 lines
2.6 KiB
YAML

# RUN: lld -flavor darwin -arch x86_64 -macosx_version_min 10.8 %s -dylib \
# RUN: -sectalign __DATA __custom 0x800 -sectalign __TEXT __text 0x400 \
# RUN: %p/Inputs/libSystem.yaml -o %t \
# RUN: && llvm-readobj -sections %t | FileCheck %s
#
# Test -sectalign option on __text and a custom section.
#
--- !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, 0x8B, 0x05, 0x00, 0x00,
0x00, 0x00, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00,
0x5D, 0xC3 ]
relocations:
- offset: 0x0000000C
type: X86_64_RELOC_SIGNED
length: 2
pc-rel: true
extern: true
symbol: 1
- offset: 0x00000006
type: X86_64_RELOC_SIGNED
length: 2
pc-rel: true
extern: true
symbol: 2
- segment: __DATA
section: __data
type: S_REGULAR
attributes: [ ]
alignment: 2
address: 0x0000000000000014
content: [ 0x0A, 0x00, 0x00, 0x00 ]
- segment: __DATA
section: __custom
type: S_REGULAR
attributes: [ ]
alignment: 2
address: 0x0000000000000018
content: [ 0x0A, 0x00, 0x00, 0x00 ]
global-symbols:
- name: _a
type: N_SECT
scope: [ N_EXT ]
sect: 2
value: 0x0000000000000014
- name: _b
type: N_SECT
scope: [ N_EXT ]
sect: 3
value: 0x0000000000000018
- name: _get
type: N_SECT
scope: [ N_EXT ]
sect: 1
value: 0x0000000000000000
...
# CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
# CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
# CHECK: Address: 0xC00
# CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
# CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
# CHECK: Address: 0x1000
# CHECK: Name: __custom (5F 5F 63 75 73 74 6F 6D 00 00 00 00 00 00 00 00)
# CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
# CHECK: Address: 0x1800