150
|
1 # RUN: ld64.lld -arch x86_64 %s %p/Inputs/hello-world-x86_64.yaml \
|
|
2 # RUN: -o %t
|
|
3 # RUN: llvm-nm -m -n %t | FileCheck %s
|
|
4 #
|
|
5 # RUN: ld64.lld -arch x86_64 %s %p/Inputs/hello-world-x86_64.yaml \
|
|
6 # RUN: -dead_strip -o %t2
|
|
7 # RUN: llvm-nm -m -n %t2 | FileCheck %s
|
|
8 #
|
|
9 # Test that x86_64 hello-world can be linked into a mach-o executable
|
|
10 #
|
|
11
|
|
12 --- !mach-o
|
|
13 arch: x86_64
|
|
14 file-type: MH_OBJECT
|
|
15 flags: [ MH_SUBSECTIONS_VIA_SYMBOLS ]
|
|
16 has-UUID: false
|
|
17 OS: unknown
|
|
18 sections:
|
|
19 - segment: __TEXT
|
|
20 section: __text
|
|
21 type: S_REGULAR
|
|
22 attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
|
|
23 address: 0x0000000000000000
|
|
24 content: [ 0x55, 0x48, 0x89, 0xE5, 0x48, 0x8B, 0x05, 0x00,
|
|
25 0x00, 0x00, 0x00, 0x48, 0x8B, 0x38, 0x48, 0x8D,
|
|
26 0x35, 0x00, 0x00, 0x00, 0x00, 0x31, 0xC0, 0xE8,
|
|
27 0x00, 0x00, 0x00, 0x00, 0x31, 0xC0, 0x5D, 0xC3 ]
|
|
28 relocations:
|
|
29 - offset: 0x00000018
|
|
30 type: X86_64_RELOC_BRANCH
|
|
31 length: 2
|
|
32 pc-rel: true
|
|
33 extern: true
|
|
34 symbol: 5
|
|
35 - offset: 0x00000011
|
|
36 type: X86_64_RELOC_SIGNED
|
|
37 length: 2
|
|
38 pc-rel: true
|
|
39 extern: true
|
|
40 symbol: 0
|
|
41 - offset: 0x00000007
|
|
42 type: X86_64_RELOC_GOT_LOAD
|
|
43 length: 2
|
|
44 pc-rel: true
|
|
45 extern: true
|
|
46 symbol: 4
|
|
47 - segment: __TEXT
|
|
48 section: __cstring
|
|
49 type: S_CSTRING_LITERALS
|
|
50 attributes: [ ]
|
|
51 address: 0x0000000000000020
|
|
52 content: [ 0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x00 ]
|
|
53 - segment: __LD
|
|
54 section: __compact_unwind
|
|
55 type: S_REGULAR
|
|
56 attributes: [ ]
|
|
57 alignment: 8
|
|
58 address: 0x0000000000000028
|
|
59 content: [ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
60 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
|
61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ]
|
|
63 relocations:
|
|
64 - offset: 0x00000000
|
|
65 type: X86_64_RELOC_UNSIGNED
|
|
66 length: 3
|
|
67 pc-rel: false
|
|
68 extern: false
|
|
69 symbol: 1
|
|
70 - segment: __TEXT
|
|
71 section: __eh_frame
|
|
72 type: S_COALESCED
|
|
73 attributes: [ ]
|
|
74 alignment: 8
|
|
75 address: 0x0000000000000048
|
|
76 content: [ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
77 0x01, 0x7A, 0x52, 0x00, 0x01, 0x78, 0x10, 0x01,
|
|
78 0x10, 0x0C, 0x07, 0x08, 0x90, 0x01, 0x00, 0x00,
|
|
79 0x24, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00,
|
|
80 0x98, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
|
81 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
82 0x00, 0x41, 0x0E, 0x10, 0x86, 0x02, 0x43, 0x0D,
|
|
83 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ]
|
|
84 local-symbols:
|
|
85 - name: L1
|
|
86 type: N_SECT
|
|
87 sect: 2
|
|
88 value: 0x0000000000000020
|
|
89 - name: EH_frame0
|
|
90 type: N_SECT
|
|
91 sect: 4
|
|
92 value: 0x0000000000000048
|
|
93 global-symbols:
|
|
94 - name: _main
|
|
95 type: N_SECT
|
|
96 scope: [ N_EXT ]
|
|
97 sect: 1
|
|
98 value: 0x0000000000000000
|
|
99 - name: _main.eh
|
|
100 type: N_SECT
|
|
101 scope: [ N_EXT ]
|
|
102 sect: 4
|
|
103 value: 0x0000000000000060
|
|
104 undefined-symbols:
|
|
105 - name: ___stdoutp
|
|
106 type: N_UNDF
|
|
107 scope: [ N_EXT ]
|
|
108 value: 0x0000000000000000
|
|
109 - name: _fprintf
|
|
110 type: N_UNDF
|
|
111 scope: [ N_EXT ]
|
|
112 value: 0x0000000000000000
|
|
113
|
|
114 ...
|
|
115
|
|
116 # CHECK: (undefined) external ___stdoutp (from libSystem)
|
|
117 # CHECK: (undefined) external _fprintf (from libSystem)
|
|
118 # CHECK: (undefined) external dyld_stub_binder (from libSystem)
|
|
119 # CHECK: {{[0-9a-f]+}} (__TEXT,__text) [referenced dynamically] external __mh_execute_header
|
|
120 # CHECK: {{[0-9a-f]+}} (__TEXT,__text) external _main
|