263 lines · plain
1# RUN: yaml2obj %s -o %t.obj2 3# RUN: rm -f %t.dll %t.pdb4# RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj5# RUN: llvm-readobj --coff-debug-directory %t.dll > %t.1.txt6# RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj7# RUN: llvm-readobj --coff-debug-directory %t.dll > %t.2.txt8# RUN: cat %t.1.txt %t.2.txt | FileCheck %s9 10# RUN: rm -f %t.dll %t.pdb11# RUN: lld-link /debug /pdb:%t1.pdb /dll /out:%t.dll /entry:DllMain %t.obj12# RUN: llvm-readobj --coff-debug-directory %t.dll > %t.3.txt13# RUN: lld-link /debug /pdb:%t2.pdb /dll /out:%t.dll /entry:DllMain %t.obj14# RUN: llvm-readobj --coff-debug-directory %t.dll > %t.4.txt15# RUN: cat %t.3.txt %t.4.txt | FileCheck --check-prefix TWOPDBS %s16 17# RUN: rm -f %t.dll %t.pdb18# RUN: lld-link /Brepro /dll /out:%t.dll /entry:DllMain %t.obj19# RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRO %s20 21# RUN: rm -f %t.dll %t.pdb22# RUN: lld-link /Brepro /debug /dll /out:%t.dll /entry:DllMain %t.obj23# RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRODEBUG %s24 25# Generate .buildid section using binary hash under /lldmingw and /build-id26# RUN: rm -f %t.dll %t.pdb27# RUN: lld-link /lldmingw /build-id /dll /out:%t.dll /entry:DllMain %t.obj28# RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix BUILDID %s29 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.pdb33# RUN: lld-link /build-id /dll /out:%t.dll /entry:DllMain %t.obj34# RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix BUILDID %s35 36# If generate PDB, PDB hash is used and /build-id is ignored.37# RUN: rm -f %t.dll %t.pdb38# RUN: lld-link /build-id /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj39# RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix BUILDID %s40 41# Do not generate .buildid section under /build-id:no42# RUN: rm -f %t.dll %t.pdb43# RUN: lld-link /build-id:no /dll /out:%t.dll /entry:DllMain %t.obj44# RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix NO_BUILDID %s45 46# RUN: rm -f %t.dll %t.pdb47# RUN: lld-link /dll /out:%t.dll /entry:DllMain %t.obj48# RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix NO_BUILDID %s49 50# CHECK: File: [[FILE:.*]].dll51# CHECK: DebugDirectory [52# CHECK: DebugEntry {53# CHECK: Characteristics: 0x054# CHECK: TimeDateStamp: 55# CHECK: MajorVersion: 0x056# CHECK: MinorVersion: 0x057# 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: 0x5344535263# CHECK: PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]64# CHECK: PDBAge: 165# CHECK: PDBFileName: {{.*}}.pdb66# CHECK: }67# CHECK: }68# CHECK: ]69# CHECK: File: [[FILE]].dll70# CHECK: DebugDirectory [71# CHECK: DebugEntry {72# CHECK: Characteristics: 0x073# CHECK: TimeDateStamp: 74# CHECK: MajorVersion: 0x075# CHECK: MinorVersion: 0x076# 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: 0x5344535282# CHECK: PDBGUID: [[GUID]]83# CHECK: PDBAge: 184# CHECK: PDBFileName: {{.*}}.pdb85# CHECK: }86# CHECK: }87# CHECK: ]88 89# TWOPDBS: File: [[FILE:.*]].dll90# TWOPDBS: DebugDirectory [91# TWOPDBS: DebugEntry {92# TWOPDBS: Characteristics: 0x093# TWOPDBS: TimeDateStamp: 94# TWOPDBS: MajorVersion: 0x095# TWOPDBS: MinorVersion: 0x096# 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: 0x53445352102# TWOPDBS: PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]103# TWOPDBS: PDBAge: 1104# TWOPDBS: PDBFileName: {{.*}}.pdb105# TWOPDBS: }106# TWOPDBS: }107# TWOPDBS: ]108# TWOPDBS: File: [[FILE]].dll109# TWOPDBS: DebugDirectory [110# TWOPDBS: DebugEntry {111# TWOPDBS: Characteristics: 0x0112# TWOPDBS: TimeDateStamp: 113# TWOPDBS: MajorVersion: 0x0114# TWOPDBS: MinorVersion: 0x0115# 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: 0x53445352121# TWOPDBS-NOT: PDBGUID: [[GUID]]122# TWOPDBS: PDBAge: 1123# TWOPDBS: PDBFileName: {{.*}}.pdb124# TWOPDBS: }125# TWOPDBS: }126# TWOPDBS: ]127 128# REPRO: File: {{.*}}.dll129# REPRO: DebugDirectory [130# REPRO: DebugEntry {131# REPRO: Characteristics: 0x0132# REPRO: TimeDateStamp: 133# REPRO: MajorVersion: 0x0134# REPRO: MinorVersion: 0x0135# REPRO: Type: Repro (0x10)136# REPRO: SizeOfData: 0x0137# REPRO: AddressOfRawData: 0x0138# REPRO: PointerToRawData: 0x0139# REPRO: }140# REPRO: ]141 142# REPRODEBUG: File: {{.*}}.dll143# REPRODEBUG: DebugDirectory [144# REPRODEBUG: DebugEntry {145# REPRODEBUG: Characteristics: 0x0146# REPRODEBUG: TimeDateStamp: 147# REPRODEBUG: MajorVersion: 0x0148# REPRODEBUG: MinorVersion: 0x0149# 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: 0x53445352155# REPRODEBUG: PDBGUID: 156# REPRODEBUG: PDBAge: 1157# REPRODEBUG: PDBFileName:158# REPRODEBUG: }159# REPRODEBUG: }160# REPRODEBUG: DebugEntry {161# REPRODEBUG: Characteristics: 0x0162# REPRODEBUG: TimeDateStamp: 163# REPRODEBUG: MajorVersion: 0x0164# REPRODEBUG: MinorVersion: 0x0165# REPRODEBUG: Type: Repro (0x10)166# REPRODEBUG: SizeOfData: 0x0167# REPRODEBUG: AddressOfRawData: 0x0168# REPRODEBUG: PointerToRawData: 0x0169# REPRODEBUG: }170# REPRODEBUG: ]171 172# BUILDID: File: {{.*}}.dll173# BUILDID: DebugDirectory [174# BUILDID: DebugEntry {175# BUILDID: Characteristics: 0x0176# BUILDID: TimeDateStamp:177# BUILDID: MajorVersion: 0x0178# BUILDID: MinorVersion: 0x0179# 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: 0x53445352185# BUILDID: PDBGUID: [[GUID:\{[A-Za-z0-9\-]{36}\}]]186# BUILDID: PDBAge: 1187# BUILDID: PDBFileName:188# BUILDID: }189# BUILDID: }190# BUILDID: ]191 192# NO_BUILDID: DebugDirectory [193# NO_BUILDID-NEXT: ]194 195# BUILDID_SEC: Name: .buildid196--- !COFF197header:198 Machine: IMAGE_FILE_MACHINE_I386199 Characteristics: [ ]200sections:201 - Name: .text202 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]203 Alignment: 4204 SectionData: 31C0C3205 - Name: .data206 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]207 Alignment: 4208 SectionData: ''209 - Name: .bss210 Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]211 Alignment: 4212 SectionData: ''213symbols:214 - Name: .text215 Value: 0216 SectionNumber: 1217 SimpleType: IMAGE_SYM_TYPE_NULL218 ComplexType: IMAGE_SYM_DTYPE_NULL219 StorageClass: IMAGE_SYM_CLASS_STATIC220 SectionDefinition:221 Length: 3222 NumberOfRelocations: 0223 NumberOfLinenumbers: 0224 CheckSum: 3963538403225 Number: 1226 - Name: .data227 Value: 0228 SectionNumber: 2229 SimpleType: IMAGE_SYM_TYPE_NULL230 ComplexType: IMAGE_SYM_DTYPE_NULL231 StorageClass: IMAGE_SYM_CLASS_STATIC232 SectionDefinition:233 Length: 0234 NumberOfRelocations: 0235 NumberOfLinenumbers: 0236 CheckSum: 0237 Number: 2238 - Name: .bss239 Value: 0240 SectionNumber: 3241 SimpleType: IMAGE_SYM_TYPE_NULL242 ComplexType: IMAGE_SYM_DTYPE_NULL243 StorageClass: IMAGE_SYM_CLASS_STATIC244 SectionDefinition:245 Length: 0246 NumberOfRelocations: 0247 NumberOfLinenumbers: 0248 CheckSum: 0249 Number: 3250 - Name: '@feat.00'251 Value: 1252 SectionNumber: -1253 SimpleType: IMAGE_SYM_TYPE_NULL254 ComplexType: IMAGE_SYM_DTYPE_NULL255 StorageClass: IMAGE_SYM_CLASS_STATIC256 - Name: _DllMain257 Value: 0258 SectionNumber: 1259 SimpleType: IMAGE_SYM_TYPE_NULL260 ComplexType: IMAGE_SYM_DTYPE_FUNCTION261 StorageClass: IMAGE_SYM_CLASS_EXTERNAL262...263