297 lines · yaml
1## Check that the default NumberOfRvaAndSize is as expected.2# RUN: yaml2obj --docnum=1 %s -o %t3# RUN: llvm-readobj --file-headers %t | FileCheck %s --check-prefix=CHECK164# RUN: obj2yaml %t | FileCheck %s --check-prefix=ROUNDTRIP165 6# CHECK16: NumberOfRvaAndSize: 167# CHECK16-NEXT: DataDirectory {8# CHECK16-NEXT: ExportTableRVA: 0x09# CHECK16-NEXT: ExportTableSize: 0x010# CHECK16-NEXT: ImportTableRVA: 0x011# CHECK16-NEXT: ImportTableSize: 0x012# CHECK16-NEXT: ResourceTableRVA: 0x013# CHECK16-NEXT: ResourceTableSize: 0x014# CHECK16-NEXT: ExceptionTableRVA: 0x015# CHECK16-NEXT: ExceptionTableSize: 0x016# CHECK16-NEXT: CertificateTableRVA: 0x017# CHECK16-NEXT: CertificateTableSize: 0x018# CHECK16-NEXT: BaseRelocationTableRVA: 0x019# CHECK16-NEXT: BaseRelocationTableSize: 0x020# CHECK16-NEXT: DebugRVA: 0x021# CHECK16-NEXT: DebugSize: 0x022# CHECK16-NEXT: ArchitectureRVA: 0x023# CHECK16-NEXT: ArchitectureSize: 0x024# CHECK16-NEXT: GlobalPtrRVA: 0x025# CHECK16-NEXT: GlobalPtrSize: 0x026# CHECK16-NEXT: TLSTableRVA: 0x027# CHECK16-NEXT: TLSTableSize: 0x028# CHECK16-NEXT: LoadConfigTableRVA: 0x029# CHECK16-NEXT: LoadConfigTableSize: 0x030# CHECK16-NEXT: BoundImportRVA: 0x031# CHECK16-NEXT: BoundImportSize: 0x032# CHECK16-NEXT: IATRVA: 0x033# CHECK16-NEXT: IATSize: 0x034# CHECK16-NEXT: DelayImportDescriptorRVA: 0x035# CHECK16-NEXT: DelayImportDescriptorSize: 0x036# CHECK16-NEXT: CLRRuntimeHeaderRVA: 0x037# CHECK16-NEXT: CLRRuntimeHeaderSize: 0x038# CHECK16-NEXT: ReservedRVA: 0x039# CHECK16-NEXT: ReservedSize: 0x040# CHECK16-NEXT: }41 42# ROUNDTRIP16: ExportTable:43# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 044# ROUNDTRIP16-NEXT: Size: 045# ROUNDTRIP16-NEXT: ImportTable:46# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 047# ROUNDTRIP16-NEXT: Size: 048# ROUNDTRIP16-NEXT: ResourceTable:49# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 050# ROUNDTRIP16-NEXT: Size: 051# ROUNDTRIP16-NEXT: ExceptionTable:52# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 053# ROUNDTRIP16-NEXT: Size: 054# ROUNDTRIP16-NEXT: CertificateTable:55# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 056# ROUNDTRIP16-NEXT: Size: 057# ROUNDTRIP16-NEXT: BaseRelocationTable:58# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 059# ROUNDTRIP16-NEXT: Size: 060# ROUNDTRIP16-NEXT: Debug:61# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 062# ROUNDTRIP16-NEXT: Size: 063# ROUNDTRIP16-NEXT: Architecture:64# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 065# ROUNDTRIP16-NEXT: Size: 066# ROUNDTRIP16-NEXT: GlobalPtr:67# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 068# ROUNDTRIP16-NEXT: Size: 069# ROUNDTRIP16-NEXT: TlsTable:70# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 071# ROUNDTRIP16-NEXT: Size: 072# ROUNDTRIP16-NEXT: LoadConfigTable:73# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 074# ROUNDTRIP16-NEXT: Size: 075# ROUNDTRIP16-NEXT: BoundImport:76# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 077# ROUNDTRIP16-NEXT: Size: 078# ROUNDTRIP16-NEXT: IAT:79# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 080# ROUNDTRIP16-NEXT: Size: 081# ROUNDTRIP16-NEXT: DelayImportDescriptor:82# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 083# ROUNDTRIP16-NEXT: Size: 084# ROUNDTRIP16-NEXT: ClrRuntimeHeader:85# ROUNDTRIP16-NEXT: RelativeVirtualAddress: 086# ROUNDTRIP16-NEXT: Size: 087# ROUNDTRIP16-NEXT: header:88 89--- !COFF90OptionalHeader:91 AddressOfEntryPoint: 409692 ImageBase: 093 SectionAlignment: 409694 FileAlignment: 51295 MajorOperatingSystemVersion: 096 MinorOperatingSystemVersion: 097 MajorImageVersion: 098 MinorImageVersion: 099 MajorSubsystemVersion: 0100 MinorSubsystemVersion: 0101 Subsystem: IMAGE_SUBSYSTEM_EFI_APPLICATION102 DLLCharacteristics: [ ]103 SizeOfStackReserve: 0104 SizeOfStackCommit: 0105 SizeOfHeapReserve: 0106 SizeOfHeapCommit: 0107header:108 Machine: IMAGE_FILE_MACHINE_AMD64109 Characteristics: [ ]110sections:111 - Name: foo112 Characteristics: [ ]113 Alignment: 4114symbols:115...116 117## Check setting NumberOfRvaAndSize equal to the default (output should118## be the same as when unset).119# RUN: yaml2obj --docnum=2 %s -o %t -DNUMRVA=16120# RUN: llvm-readobj --file-headers %t | FileCheck %s --check-prefix=CHECK16121# RUN: obj2yaml %t | FileCheck %s --check-prefix=ROUNDTRIP16122 123## Check that NumberOfRvaAndSize can be zero.124# RUN: yaml2obj --docnum=2 %s -o %t -DNUMRVA=0125# RUN: llvm-readobj --file-headers %t | FileCheck %s --check-prefix=CHECK0126# RUN: obj2yaml %t | FileCheck %s --check-prefix=ROUNDTRIP0127 128# CHECK0: NumberOfRvaAndSize: 0129# CHECK0-NOT: DataDirectory130 131# ROUNDTRIP0: NumberOfRvaAndSize: 0132# ROUNDTRIP0-NOT: ExportTable133 134## Check setting NumberOfRvaAndSize to number below default.135# RUN: yaml2obj --docnum=2 %s -o %t -DNUMRVA=6136# RUN: llvm-readobj --file-headers %t | FileCheck %s --check-prefix=CHECK6137# RUN: obj2yaml %t | FileCheck %s --check-prefix=ROUNDTRIP6138 139# CHECK6: NumberOfRvaAndSize: 6140# CHECK6-NEXT: DataDirectory {141# CHECK6-NEXT: ExportTableRVA: 0x0142# CHECK6-NEXT: ExportTableSize: 0x0143# CHECK6-NEXT: ImportTableRVA: 0x0144# CHECK6-NEXT: ImportTableSize: 0x0145# CHECK6-NEXT: ResourceTableRVA: 0x0146# CHECK6-NEXT: ResourceTableSize: 0x0147# CHECK6-NEXT: ExceptionTableRVA: 0x0148# CHECK6-NEXT: ExceptionTableSize: 0x0149# CHECK6-NEXT: CertificateTableRVA: 0x0150# CHECK6-NEXT: CertificateTableSize: 0x0151# CHECK6-NEXT: BaseRelocationTableRVA: 0x0152# CHECK6-NEXT: BaseRelocationTableSize: 0x0153# CHECK6-NEXT: }154 155# ROUNDTRIP6: NumberOfRvaAndSize: 6156# ROUNDTRIP6-NEXT: ExportTable:157# ROUNDTRIP6-NEXT: RelativeVirtualAddress: 0158# ROUNDTRIP6-NEXT: Size: 0159# ROUNDTRIP6-NEXT: ImportTable:160# ROUNDTRIP6-NEXT: RelativeVirtualAddress: 0161# ROUNDTRIP6-NEXT: Size: 0162# ROUNDTRIP6-NEXT: ResourceTable:163# ROUNDTRIP6-NEXT: RelativeVirtualAddress: 0164# ROUNDTRIP6-NEXT: Size: 0165# ROUNDTRIP6-NEXT: ExceptionTable:166# ROUNDTRIP6-NEXT: RelativeVirtualAddress: 0167# ROUNDTRIP6-NEXT: Size: 0168# ROUNDTRIP6-NEXT: CertificateTable:169# ROUNDTRIP6-NEXT: RelativeVirtualAddress: 0170# ROUNDTRIP6-NEXT: Size: 0171# ROUNDTRIP6-NEXT: BaseRelocationTable:172# ROUNDTRIP6-NEXT: RelativeVirtualAddress: 0173# ROUNDTRIP6-NEXT: Size: 0174# ROUNDTRIP6-NEXT: header:175 176## Check setting NumberOfRvaAndSize to number above default.177# RUN: yaml2obj --docnum=2 %s -o %t -DNUMRVA=18178# RUN: llvm-readobj --file-headers %t | FileCheck %s --check-prefix=CHECK18179# RUN: obj2yaml %t | FileCheck %s --check-prefix=ROUNDTRIP18180 181# CHECK18: NumberOfRvaAndSize: 18182# CHECK18-NEXT: DataDirectory {183# CHECK18-NEXT: ExportTableRVA: 0x0184# CHECK18-NEXT: ExportTableSize: 0x0185# CHECK18-NEXT: ImportTableRVA: 0x0186# CHECK18-NEXT: ImportTableSize: 0x0187# CHECK18-NEXT: ResourceTableRVA: 0x0188# CHECK18-NEXT: ResourceTableSize: 0x0189# CHECK18-NEXT: ExceptionTableRVA: 0x0190# CHECK18-NEXT: ExceptionTableSize: 0x0191# CHECK18-NEXT: CertificateTableRVA: 0x0192# CHECK18-NEXT: CertificateTableSize: 0x0193# CHECK18-NEXT: BaseRelocationTableRVA: 0x0194# CHECK18-NEXT: BaseRelocationTableSize: 0x0195# CHECK18-NEXT: DebugRVA: 0x0196# CHECK18-NEXT: DebugSize: 0x0197# CHECK18-NEXT: ArchitectureRVA: 0x0198# CHECK18-NEXT: ArchitectureSize: 0x0199# CHECK18-NEXT: GlobalPtrRVA: 0x0200# CHECK18-NEXT: GlobalPtrSize: 0x0201# CHECK18-NEXT: TLSTableRVA: 0x0202# CHECK18-NEXT: TLSTableSize: 0x0203# CHECK18-NEXT: LoadConfigTableRVA: 0x0204# CHECK18-NEXT: LoadConfigTableSize: 0x0205# CHECK18-NEXT: BoundImportRVA: 0x0206# CHECK18-NEXT: BoundImportSize: 0x0207# CHECK18-NEXT: IATRVA: 0x0208# CHECK18-NEXT: IATSize: 0x0209# CHECK18-NEXT: DelayImportDescriptorRVA: 0x0210# CHECK18-NEXT: DelayImportDescriptorSize: 0x0211# CHECK18-NEXT: CLRRuntimeHeaderRVA: 0x0212# CHECK18-NEXT: CLRRuntimeHeaderSize: 0x0213# CHECK18-NEXT: ReservedRVA: 0x0214# CHECK18-NEXT: ReservedSize: 0x0215# CHECK18-NEXT: UnknownRVA: 0x0216# CHECK18-NEXT: UnknownSize: 0x0217# CHECK18-NEXT: UnknownRVA: 0x0218# CHECK18-NEXT: UnknownSize: 0x0219# CHECK18-NEXT: }220 221# ROUNDTRIP18: NumberOfRvaAndSize: 18222# ROUNDTRIP18-NEXT: ExportTable:223# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0224# ROUNDTRIP18-NEXT: Size: 0225# ROUNDTRIP18-NEXT: ImportTable:226# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0227# ROUNDTRIP18-NEXT: Size: 0228# ROUNDTRIP18-NEXT: ResourceTable:229# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0230# ROUNDTRIP18-NEXT: Size: 0231# ROUNDTRIP18-NEXT: ExceptionTable:232# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0233# ROUNDTRIP18-NEXT: Size: 0234# ROUNDTRIP18-NEXT: CertificateTable:235# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0236# ROUNDTRIP18-NEXT: Size: 0237# ROUNDTRIP18-NEXT: BaseRelocationTable:238# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0239# ROUNDTRIP18-NEXT: Size: 0240# ROUNDTRIP18-NEXT: Debug:241# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0242# ROUNDTRIP18-NEXT: Size: 0243# ROUNDTRIP18-NEXT: Architecture:244# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0245# ROUNDTRIP18-NEXT: Size: 0246# ROUNDTRIP18-NEXT: GlobalPtr:247# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0248# ROUNDTRIP18-NEXT: Size: 0249# ROUNDTRIP18-NEXT: TlsTable:250# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0251# ROUNDTRIP18-NEXT: Size: 0252# ROUNDTRIP18-NEXT: LoadConfigTable:253# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0254# ROUNDTRIP18-NEXT: Size: 0255# ROUNDTRIP18-NEXT: BoundImport:256# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0257# ROUNDTRIP18-NEXT: Size: 0258# ROUNDTRIP18-NEXT: IAT:259# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0260# ROUNDTRIP18-NEXT: Size: 0261# ROUNDTRIP18-NEXT: DelayImportDescriptor:262# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0263# ROUNDTRIP18-NEXT: Size: 0264# ROUNDTRIP18-NEXT: ClrRuntimeHeader:265# ROUNDTRIP18-NEXT: RelativeVirtualAddress: 0266# ROUNDTRIP18-NEXT: Size: 0267# ROUNDTRIP18-NEXT: header:268 269--- !COFF270OptionalHeader:271 AddressOfEntryPoint: 4096272 ImageBase: 0273 SectionAlignment: 4096274 FileAlignment: 512275 MajorOperatingSystemVersion: 0276 MinorOperatingSystemVersion: 0277 MajorImageVersion: 0278 MinorImageVersion: 0279 MajorSubsystemVersion: 0280 MinorSubsystemVersion: 0281 Subsystem: IMAGE_SUBSYSTEM_EFI_APPLICATION282 DLLCharacteristics: [ ]283 SizeOfStackReserve: 0284 SizeOfStackCommit: 0285 SizeOfHeapReserve: 0286 SizeOfHeapCommit: 0287 NumberOfRvaAndSize: [[NUMRVA]]288header:289 Machine: IMAGE_FILE_MACHINE_AMD64290 Characteristics: [ ]291sections:292 - Name: foo293 Characteristics: [ ]294 Alignment: 4295symbols:296...297