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
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 [
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]}}
62 # CHECK: PDBSignature: 0x53445352
63 # CHECK: PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]
65 # CHECK: PDBFileName: {{.*}}.pdb
69 # CHECK: File: [[FILE]].dll
70 # CHECK: DebugDirectory [
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]}}
81 # CHECK: PDBSignature: 0x53445352
82 # CHECK: PDBGUID: [[GUID]]
84 # CHECK: PDBFileName: {{.*}}.pdb
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]}}
101 # TWOPDBS: PDBSignature: 0x53445352
102 # TWOPDBS: PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]
104 # TWOPDBS: PDBFileName: {{.*}}.pdb
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]}}
120 # TWOPDBS: PDBSignature: 0x53445352
121 # TWOPDBS-NOT: PDBGUID: [[GUID]]
123 # TWOPDBS: PDBFileName: {{.*}}.pdb
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
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:
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
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]}}
184 # BUILDID: PDBSignature: 0x53445352
185 # BUILDID: PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]
187 # BUILDID: PDBFileName:
192 # NO_BUILDID: DebugDirectory [
195 # BUILDID_SEC: Name: .buildid
198 Machine: IMAGE_FILE_MACHINE_I386
202 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
206 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
210 Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
217 SimpleType: IMAGE_SYM_TYPE_NULL
218 ComplexType: IMAGE_SYM_DTYPE_NULL
219 StorageClass: IMAGE_SYM_CLASS_STATIC
222 NumberOfRelocations: 0
223 NumberOfLinenumbers: 0
229 SimpleType: IMAGE_SYM_TYPE_NULL
230 ComplexType: IMAGE_SYM_DTYPE_NULL
231 StorageClass: IMAGE_SYM_CLASS_STATIC
234 NumberOfRelocations: 0
235 NumberOfLinenumbers: 0
241 SimpleType: IMAGE_SYM_TYPE_NULL
242 ComplexType: IMAGE_SYM_DTYPE_NULL
243 StorageClass: IMAGE_SYM_CLASS_STATIC
246 NumberOfRelocations: 0
247 NumberOfLinenumbers: 0
253 SimpleType: IMAGE_SYM_TYPE_NULL
254 ComplexType: IMAGE_SYM_DTYPE_NULL
255 StorageClass: IMAGE_SYM_CLASS_STATIC
259 SimpleType: IMAGE_SYM_TYPE_NULL
260 ComplexType: IMAGE_SYM_DTYPE_FUNCTION
261 StorageClass: IMAGE_SYM_CLASS_EXTERNAL