blob: ab636705198e58949e8c90f55792a2a667861c39 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# REQUIRES: aarch64
## This is a regression test which makes sure that when there is an invalid section index
## associated with a section symbol, the linker does not segfault.
## Test YAML content was created using the following steps
## 1. Create an object file from the following assembly
## `llvm-mc -filetype=obj -triple=arm64-apple-darwin symbol.s -o symbol.o`
##
## .text
## .section __TEST,__mystuff
## .globl _mysec
## _mysec:
## .byte 0xC3
##
## 2. Use obj2yaml to convert object file to yaml
## `obj2yaml symbol.o -o symbol.yaml`
##
## 3. Manually set n_sect value of ltmp1 symbol to 0 instead of 1.
##
# RUN: yaml2obj %s -o %t
# RUN: not %lld -platform_version macos 10.14 11.0 -arch arm64 %t 2>&1 | FileCheck %s --check-prefix=FATAL
# FATAL: error: section symbol ltmp0 in {{.*}} has an invalid section index [0]
--- !mach-o
FileHeader:
magic: 0xFEEDFACF
cputype: 0x100000C
cpusubtype: 0x0
filetype: 0x1
ncmds: 3
sizeofcmds: 336
flags: 0x0
reserved: 0x0
LoadCommands:
- cmd: LC_SEGMENT_64
cmdsize: 232
segname: ''
vmaddr: 0
vmsize: 1
fileoff: 368
filesize: 1
maxprot: 7
initprot: 7
nsects: 2
flags: 0
Sections:
- sectname: __text
segname: __TEXT
addr: 0x0
size: 0
offset: 0x170
align: 0
reloff: 0x0
nreloc: 0
flags: 0x80000000
reserved1: 0x0
reserved2: 0x0
reserved3: 0x0
content: ''
- sectname: __mystuff
segname: __TEST
addr: 0x0
size: 1
offset: 0x170
align: 0
reloff: 0x0
nreloc: 0
flags: 0x0
reserved1: 0x0
reserved2: 0x0
reserved3: 0x0
content: C3
- cmd: LC_SYMTAB
cmdsize: 24
symoff: 376
nsyms: 3
stroff: 424
strsize: 24
- cmd: LC_DYSYMTAB
cmdsize: 80
ilocalsym: 0
nlocalsym: 2
iextdefsym: 2
nextdefsym: 1
iundefsym: 3
nundefsym: 0
tocoff: 0
ntoc: 0
modtaboff: 0
nmodtab: 0
extrefsymoff: 0
nextrefsyms: 0
indirectsymoff: 0
nindirectsyms: 0
extreloff: 0
nextrel: 0
locreloff: 0
nlocrel: 0
LinkEditData:
NameList:
- n_strx: 14
n_type: 0xE
n_sect: 0
n_desc: 0
n_value: 0
- n_strx: 8
n_type: 0xE
n_sect: 2
n_desc: 0
n_value: 0
- n_strx: 1
n_type: 0xF
n_sect: 2
n_desc: 0
n_value: 0
StringTable:
- ''
- _mysec
- ltmp1
- ltmp0
- ''
- ''
- ''
- ''
...
|