[flang] Support OPEN(..., FORM="BINARY") (#124657)
[llvm-project.git] / lld / test / COFF / rsds.test
blobbabf8cba5df195656a9208ca67492d20b0be715d
1 # RUN: yaml2obj %s -o %t.obj
3 # RUN: rm -f %t.dll %t.pdb
4 # RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj
5 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.1.txt
6 # RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj
7 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.2.txt
8 # RUN: cat %t.1.txt %t.2.txt | FileCheck %s
10 # RUN: rm -f %t.dll %t.pdb
11 # RUN: lld-link /debug /pdb:%t1.pdb /dll /out:%t.dll /entry:DllMain %t.obj
12 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.3.txt
13 # RUN: lld-link /debug /pdb:%t2.pdb /dll /out:%t.dll /entry:DllMain %t.obj
14 # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.4.txt
15 # RUN: cat %t.3.txt %t.4.txt | FileCheck --check-prefix TWOPDBS %s
17 # RUN: rm -f %t.dll %t.pdb
18 # RUN: lld-link /Brepro /dll /out:%t.dll /entry:DllMain %t.obj
19 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRO %s
21 # RUN: rm -f %t.dll %t.pdb
22 # RUN: lld-link /Brepro /debug /dll /out:%t.dll /entry:DllMain %t.obj
23 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRODEBUG %s
25 # Generate .buildid section using binary hash under /lldmingw and /build-id
26 # RUN: rm -f %t.dll %t.pdb
27 # RUN: lld-link /lldmingw /build-id /dll /out:%t.dll /entry:DllMain %t.obj
28 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix BUILDID %s
30 # Generate debug directory with use binary hash when /build-id is given and not 
31 # generating PDB.
32 # RUN: rm -f %t.dll %t.pdb
33 # RUN: lld-link /build-id /dll /out:%t.dll /entry:DllMain %t.obj
34 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix BUILDID %s
36 # If generate PDB, PDB hash is used and /build-id is ignored.
37 # RUN: rm -f %t.dll %t.pdb
38 # RUN: lld-link /build-id /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj
39 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix BUILDID %s
41 # Do not generate .buildid section under /build-id:no
42 # RUN: rm -f %t.dll %t.pdb
43 # RUN: lld-link /build-id:no /dll /out:%t.dll /entry:DllMain %t.obj
44 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix NO_BUILDID %s
46 # RUN: rm -f %t.dll %t.pdb
47 # RUN: lld-link /dll /out:%t.dll /entry:DllMain %t.obj
48 # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix NO_BUILDID %s
50 # CHECK: File: [[FILE:.*]].dll
51 # CHECK: DebugDirectory [
52 # CHECK:   DebugEntry {
53 # CHECK:     Characteristics: 0x0
54 # CHECK:     TimeDateStamp: 
55 # CHECK:     MajorVersion: 0x0
56 # CHECK:     MinorVersion: 0x0
57 # CHECK:     Type: CodeView (0x2)
58 # CHECK:     SizeOfData: 0x{{[^0]}}
59 # CHECK:     AddressOfRawData: 0x{{[^0]}}
60 # CHECK:     PointerToRawData: 0x{{[^0]}}
61 # CHECK:     PDBInfo {
62 # CHECK:       PDBSignature: 0x53445352
63 # CHECK:       PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]
64 # CHECK:       PDBAge: 1
65 # CHECK:       PDBFileName: {{.*}}.pdb
66 # CHECK:     }
67 # CHECK:   }
68 # CHECK: ]
69 # CHECK: File: [[FILE]].dll
70 # CHECK: DebugDirectory [
71 # CHECK:   DebugEntry {
72 # CHECK:     Characteristics: 0x0
73 # CHECK:     TimeDateStamp: 
74 # CHECK:     MajorVersion: 0x0
75 # CHECK:     MinorVersion: 0x0
76 # CHECK:     Type: CodeView (0x2)
77 # CHECK:     SizeOfData: 0x{{[^0]}}
78 # CHECK:     AddressOfRawData: 0x{{[^0]}}
79 # CHECK:     PointerToRawData: 0x{{[^0]}}
80 # CHECK:     PDBInfo {
81 # CHECK:       PDBSignature: 0x53445352
82 # CHECK:       PDBGUID: [[GUID]]
83 # CHECK:       PDBAge: 1
84 # CHECK:       PDBFileName: {{.*}}.pdb
85 # CHECK:     }
86 # CHECK:   }
87 # CHECK: ]
89 # TWOPDBS: File: [[FILE:.*]].dll
90 # TWOPDBS: DebugDirectory [
91 # TWOPDBS:   DebugEntry {
92 # TWOPDBS:     Characteristics: 0x0
93 # TWOPDBS:     TimeDateStamp: 
94 # TWOPDBS:     MajorVersion: 0x0
95 # TWOPDBS:     MinorVersion: 0x0
96 # TWOPDBS:     Type: CodeView (0x2)
97 # TWOPDBS:     SizeOfData: 0x{{[^0]}}
98 # TWOPDBS:     AddressOfRawData: 0x{{[^0]}}
99 # TWOPDBS:     PointerToRawData: 0x{{[^0]}}
100 # TWOPDBS:     PDBInfo {
101 # TWOPDBS:       PDBSignature: 0x53445352
102 # TWOPDBS:       PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]
103 # TWOPDBS:       PDBAge: 1
104 # TWOPDBS:       PDBFileName: {{.*}}.pdb
105 # TWOPDBS:     }
106 # TWOPDBS:   }
107 # TWOPDBS: ]
108 # TWOPDBS: File: [[FILE]].dll
109 # TWOPDBS: DebugDirectory [
110 # TWOPDBS:   DebugEntry {
111 # TWOPDBS:     Characteristics: 0x0
112 # TWOPDBS:     TimeDateStamp: 
113 # TWOPDBS:     MajorVersion: 0x0
114 # TWOPDBS:     MinorVersion: 0x0
115 # TWOPDBS:     Type: CodeView (0x2)
116 # TWOPDBS:     SizeOfData: 0x{{[^0]}}
117 # TWOPDBS:     AddressOfRawData: 0x{{[^0]}}
118 # TWOPDBS:     PointerToRawData: 0x{{[^0]}}
119 # TWOPDBS:     PDBInfo {
120 # TWOPDBS:       PDBSignature: 0x53445352
121 # TWOPDBS-NOT:       PDBGUID: [[GUID]]
122 # TWOPDBS:       PDBAge: 1
123 # TWOPDBS:       PDBFileName: {{.*}}.pdb
124 # TWOPDBS:     }
125 # TWOPDBS:   }
126 # TWOPDBS: ]
128 # REPRO: File: {{.*}}.dll
129 # REPRO: DebugDirectory [
130 # REPRO:   DebugEntry {
131 # REPRO:     Characteristics: 0x0
132 # REPRO:     TimeDateStamp: 
133 # REPRO:     MajorVersion: 0x0
134 # REPRO:     MinorVersion: 0x0
135 # REPRO:     Type: Repro (0x10)
136 # REPRO:     SizeOfData: 0x0
137 # REPRO:     AddressOfRawData: 0x0
138 # REPRO:     PointerToRawData: 0x0
139 # REPRO:   }
140 # REPRO: ]
142 # REPRODEBUG: File: {{.*}}.dll
143 # REPRODEBUG: DebugDirectory [
144 # REPRODEBUG:   DebugEntry {
145 # REPRODEBUG:     Characteristics: 0x0
146 # REPRODEBUG:     TimeDateStamp: 
147 # REPRODEBUG:     MajorVersion: 0x0
148 # REPRODEBUG:     MinorVersion: 0x0
149 # REPRODEBUG:     Type: CodeView (0x2)
150 # REPRODEBUG:     SizeOfData: 0x{{[^0]}}
151 # REPRODEBUG:     AddressOfRawData: 0x{{[^0]}}
152 # REPRODEBUG:     PointerToRawData: 0x{{[^0]}}
153 # REPRODEBUG:     PDBInfo {
154 # REPRODEBUG:       PDBSignature: 0x53445352
155 # REPRODEBUG:       PDBGUID: 
156 # REPRODEBUG:       PDBAge: 1
157 # REPRODEBUG:       PDBFileName:
158 # REPRODEBUG:     }
159 # REPRODEBUG:   }
160 # REPRODEBUG:   DebugEntry {
161 # REPRODEBUG:     Characteristics: 0x0
162 # REPRODEBUG:     TimeDateStamp: 
163 # REPRODEBUG:     MajorVersion: 0x0
164 # REPRODEBUG:     MinorVersion: 0x0
165 # REPRODEBUG:     Type: Repro (0x10)
166 # REPRODEBUG:     SizeOfData: 0x0
167 # REPRODEBUG:     AddressOfRawData: 0x0
168 # REPRODEBUG:     PointerToRawData: 0x0
169 # REPRODEBUG:   }
170 # REPRODEBUG: ]
172 # BUILDID: File: {{.*}}.dll
173 # BUILDID: DebugDirectory [
174 # BUILDID:   DebugEntry {
175 # BUILDID:     Characteristics: 0x0
176 # BUILDID:     TimeDateStamp:
177 # BUILDID:     MajorVersion: 0x0
178 # BUILDID:     MinorVersion: 0x0
179 # BUILDID:     Type: CodeView (0x2)
180 # BUILDID:     SizeOfData: 0x{{[^0]}}
181 # BUILDID:     AddressOfRawData: 0x{{[^0]}}
182 # BUILDID:     PointerToRawData: 0x{{[^0]}}
183 # BUILDID:     PDBInfo {
184 # BUILDID:       PDBSignature: 0x53445352
185 # BUILDID:       PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]
186 # BUILDID:       PDBAge: 1
187 # BUILDID:       PDBFileName:
188 # BUILDID:     }
189 # BUILDID:   }
190 # BUILDID: ]
192 # NO_BUILDID:      DebugDirectory [
193 # NO_BUILDID-NEXT: ]
195 # BUILDID_SEC: Name: .buildid
196 --- !COFF
197 header:
198   Machine:         IMAGE_FILE_MACHINE_I386
199   Characteristics: [  ]
200 sections:
201   - Name:            .text
202     Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
203     Alignment:       4
204     SectionData:     31C0C3
205   - Name:            .data
206     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
207     Alignment:       4
208     SectionData:     ''
209   - Name:            .bss
210     Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
211     Alignment:       4
212     SectionData:     ''
213 symbols:
214   - Name:            .text
215     Value:           0
216     SectionNumber:   1
217     SimpleType:      IMAGE_SYM_TYPE_NULL
218     ComplexType:     IMAGE_SYM_DTYPE_NULL
219     StorageClass:    IMAGE_SYM_CLASS_STATIC
220     SectionDefinition:
221       Length:          3
222       NumberOfRelocations: 0
223       NumberOfLinenumbers: 0
224       CheckSum:        3963538403
225       Number:          1
226   - Name:            .data
227     Value:           0
228     SectionNumber:   2
229     SimpleType:      IMAGE_SYM_TYPE_NULL
230     ComplexType:     IMAGE_SYM_DTYPE_NULL
231     StorageClass:    IMAGE_SYM_CLASS_STATIC
232     SectionDefinition:
233       Length:          0
234       NumberOfRelocations: 0
235       NumberOfLinenumbers: 0
236       CheckSum:        0
237       Number:          2
238   - Name:            .bss
239     Value:           0
240     SectionNumber:   3
241     SimpleType:      IMAGE_SYM_TYPE_NULL
242     ComplexType:     IMAGE_SYM_DTYPE_NULL
243     StorageClass:    IMAGE_SYM_CLASS_STATIC
244     SectionDefinition:
245       Length:          0
246       NumberOfRelocations: 0
247       NumberOfLinenumbers: 0
248       CheckSum:        0
249       Number:          3
250   - Name:            '@feat.00'
251     Value:           1
252     SectionNumber:   -1
253     SimpleType:      IMAGE_SYM_TYPE_NULL
254     ComplexType:     IMAGE_SYM_DTYPE_NULL
255     StorageClass:    IMAGE_SYM_CLASS_STATIC
256   - Name:            _DllMain
257     Value:           0
258     SectionNumber:   1
259     SimpleType:      IMAGE_SYM_TYPE_NULL
260     ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
261     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL