91 lines · plain
1## Test the --private-headers option for the loader section of XCOFF object files.2 3# RUN: yaml2obj --docnum=1 %s -o %t_xcoff32.o4# RUN: yaml2obj --docnum=2 %s -o %t_xcoff64.o5# RUN: llvm-objdump --private-headers %t_xcoff32.o |\6# RUN: FileCheck %s --check-prefixes=CHECK32 --match-full-lines7# RUN: llvm-objdump --private-headers %t_xcoff64.o |\8# RUN: FileCheck %s --check-prefixes=CHECK64 --match-full-lines9 10# RUN: yaml2obj --docnum=1 %s -o %t-truncate.o11# RUN: %python -c "with open('%/t-truncate.o', 'r+b') as input: input.truncate(60)"12# RUN: llvm-objdump --private-headers %t-truncate.o 2>&1 |\13# RUN: FileCheck --check-prefix=WARN %s14 15# WARN: The end of the file was unexpectedly encountered: loader section with offset 0x3c and size 0x20 goes past the end of the file16 17--- !XCOFF18FileHeader:19 MagicNumber: 0x1DF20Sections:21 - Name: .loader22 Flags: [ STYP_LOADER ]23 SectionData: "0000000100000003000000050000016D00000001000000A40000001800000211"24## ^------- -Version=125## ^------- -NumberOfSymbolEntries=326## ^------- -NumberOfRelocationEntries=527## ^------- -LengthOfImportFileIDStringTable=36528## ^------- -NumberOfImportFileIDs=129## ^------- -OffsetToImportFileIDs=0xA430## ^------- -LengthOfStringTable=2431## ^------- -OffsetToStringTable=0x21132 33 34--- !XCOFF35FileHeader:36 MagicNumber: 0x1F737Sections:38 - Name: .loader39 Flags: [ STYP_LOADER ]40 SectionData: "0000000200000003000000050000016D000000010000002300000000000000D0000000000000023D00000000000000380000000000000080"41## ^------- -Version=242## ^------- -NumberOfSymbolEntries=343## ^------- -NumberOfRelocationEntries=544## ^------- -LengthOfImportFileIDStringTable=36545## ^------- -NumberOfImportFileIDs=146## ^------- --LengthOfStringTable=0x2347## ^--------------- -OffsetToImportFileIDs=0xD048## ^--------------- -OffsetToStringTable=0x23D49## ^-------------- -OffsetToSymbolTable=0x3850## ^--------------- -OffsetToRelocationEntries=0x8051 52# CHECK32: ---File Header:53# CHECK32-NEXT: Magic: 0x1df54# CHECK32-NEXT: NumberOfSections: 155# CHECK32-NEXT: Timestamp: None (0)56# CHECK32-NEXT: SymbolTableOffset: 0x057# CHECK32-NEXT: SymbolTableEntries: 058# CHECK32-NEXT: OptionalHeaderSize: 0x059# CHECK32-NEXT: Flags: 0x060 61# CHECK32: ---Loader Section Header:62# CHECK32-NEXT: Version: 163# CHECK32-NEXT: NumberOfSymbolEntries: 364# CHECK32-NEXT: NumberOfRelocationEntries: 565# CHECK32-NEXT: LengthOfImportFileIDStringTable: 36566# CHECK32-NEXT: NumberOfImportFileIDs: 167# CHECK32-NEXT: OffsetToImportFileIDs: 0xa468# CHECK32-NEXT: LengthOfStringTable: 2469# CHECK32-NEXT: OffsetToStringTable: 0x21170 71# CHECK64: ---File Header:72# CHECK64-NEXT: Magic: 0x1f773# CHECK64-NEXT: NumberOfSections: 174# CHECK64-NEXT: Timestamp: None (0)75# CHECK64-NEXT: SymbolTableOffset: 0x076# CHECK64-NEXT: SymbolTableEntries: 077# CHECK64-NEXT: OptionalHeaderSize: 0x078# CHECK64-NEXT: Flags: 0x079 80# CHECK64: ---Loader Section Header:81# CHECK64-NEXT: Version: 282# CHECK64-NEXT: NumberOfSymbolEntries: 383# CHECK64-NEXT: NumberOfRelocationEntries: 584# CHECK64-NEXT: LengthOfImportFileIDStringTable: 36585# CHECK64-NEXT: NumberOfImportFileIDs: 186# CHECK64-NEXT: OffsetToImportFileIDs: 0xd087# CHECK64-NEXT: LengthOfStringTable: 3588# CHECK64-NEXT: OffsetToStringTable: 0x23d89# CHECK64-NEXT: OffsetToSymbolTable 0x3890# CHECK64-NEXT: OffsetToRelocationEntries 0x8091