|
| 1 | +## Test the --private-headers option for the loader section of XCOFF object files. |
| 2 | + |
| 3 | +# RUN: yaml2obj --docnum=1 %s -o %t_xcoff32.o |
| 4 | +# RUN: yaml2obj --docnum=2 %s -o %t_xcoff64.o |
| 5 | +# RUN: llvm-objdump --private-headers %t_xcoff32.o |\ |
| 6 | +# RUN: FileCheck %s --check-prefixes=CHECK32 --match-full-lines |
| 7 | +# RUN: llvm-objdump --private-headers %t_xcoff64.o |\ |
| 8 | +# RUN: FileCheck %s --check-prefixes=CHECK64 --match-full-lines |
| 9 | + |
| 10 | +# RUN: yaml2obj --docnum=1 %s -o %t-truncate.o |
| 11 | +# 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 %s |
| 14 | + |
| 15 | +# WARN: The end of the file was unexpectedly encountered: loader section with offset 0x3c and size 0x20 goes past the end of the file |
| 16 | + |
| 17 | +--- !XCOFF |
| 18 | +FileHeader: |
| 19 | + MagicNumber: 0x1DF |
| 20 | +Sections: |
| 21 | + - Name: .loader |
| 22 | + Flags: [ STYP_LOADER ] |
| 23 | + SectionData: "0000000100000003000000050000016D00000001000000A40000001800000211" |
| 24 | +## ^------- -Version=1 |
| 25 | +## ^------- -NumberOfSymbolEntries=3 |
| 26 | +## ^------- -NumberOfRelocationEntries=5 |
| 27 | +## ^------- -LengthOfImportFileIDStringTable=365 |
| 28 | +## ^------- -NumberOfImportFileIDs=1 |
| 29 | +## ^------- -OffsetToImportFileIDs=0xA4 |
| 30 | +## ^------- -LengthOfStringTable=24 |
| 31 | +## ^------- -OffsetToStringTable=0x211 |
| 32 | + |
| 33 | + |
| 34 | +--- !XCOFF |
| 35 | +FileHeader: |
| 36 | + MagicNumber: 0x1F7 |
| 37 | +Sections: |
| 38 | + - Name: .loader |
| 39 | + Flags: [ STYP_LOADER ] |
| 40 | + SectionData: "0000000200000003000000050000016D000000010000002300000000000000D0000000000000023D00000000000000380000000000000080" |
| 41 | +## ^------- -Version=2 |
| 42 | +## ^------- -NumberOfSymbolEntries=3 |
| 43 | +## ^------- -NumberOfRelocationEntries=5 |
| 44 | +## ^------- -LengthOfImportFileIDStringTable=365 |
| 45 | +## ^------- -NumberOfImportFileIDs=1 |
| 46 | +## ^------- --LengthOfStringTable=0x23 |
| 47 | +## ^--------------- -OffsetToImportFileIDs=0xD0 |
| 48 | +## ^--------------- -OffsetToStringTable=0x23D |
| 49 | +## ^-------------- -OffsetToSymbolTable=0x38 |
| 50 | +## ^--------------- -OffsetToRelocationEntries=0x80 |
| 51 | + |
| 52 | +# CHECK32: ---File Header: |
| 53 | +# CHECK32-NEXT: Magic: 0x1df |
| 54 | +# CHECK32-NEXT: NumberOfSections: 1 |
| 55 | +# CHECK32-NEXT: Timestamp: None (0) |
| 56 | +# CHECK32-NEXT: SymbolTableOffset: 0x0 |
| 57 | +# CHECK32-NEXT: SymbolTableEntries: 0 |
| 58 | +# CHECK32-NEXT: OptionalHeaderSize: 0x0 |
| 59 | +# CHECK32-NEXT: Flags: 0x0 |
| 60 | + |
| 61 | +# CHECK32: ---Loader Section Header: |
| 62 | +# CHECK32-NEXT: Version: 1 |
| 63 | +# CHECK32-NEXT: NumberOfSymbolEntries: 3 |
| 64 | +# CHECK32-NEXT: NumberOfRelocationEntries: 5 |
| 65 | +# CHECK32-NEXT: LengthOfImportFileIDStringTable: 365 |
| 66 | +# CHECK32-NEXT: NumberOfImportFileIDs: 1 |
| 67 | +# CHECK32-NEXT: OffsetToImportFileIDs: 0xa4 |
| 68 | +# CHECK32-NEXT: LengthOfStringTable: 24 |
| 69 | +# CHECK32-NEXT: OffsetToStringTable: 0x211 |
| 70 | + |
| 71 | +# CHECK64: ---File Header: |
| 72 | +# CHECK64-NEXT: Magic: 0x1f7 |
| 73 | +# CHECK64-NEXT: NumberOfSections: 1 |
| 74 | +# CHECK64-NEXT: Timestamp: None (0) |
| 75 | +# CHECK64-NEXT: SymbolTableOffset: 0x0 |
| 76 | +# CHECK64-NEXT: SymbolTableEntries: 0 |
| 77 | +# CHECK64-NEXT: OptionalHeaderSize: 0x0 |
| 78 | +# CHECK64-NEXT: Flags: 0x0 |
| 79 | + |
| 80 | +# CHECK64: ---Loader Section Header: |
| 81 | +# CHECK64-NEXT: Version: 2 |
| 82 | +# CHECK64-NEXT: NumberOfSymbolEntries: 3 |
| 83 | +# CHECK64-NEXT: NumberOfRelocationEntries: 5 |
| 84 | +# CHECK64-NEXT: LengthOfImportFileIDStringTable: 365 |
| 85 | +# CHECK64-NEXT: NumberOfImportFileIDs: 1 |
| 86 | +# CHECK64-NEXT: OffsetToImportFileIDs: 0xd0 |
| 87 | +# CHECK64-NEXT: LengthOfStringTable: 35 |
| 88 | +# CHECK64-NEXT: OffsetToStringTable: 0x23d |
| 89 | +# CHECK64-NEXT: OffsetToSymbolTable 0x38 |
| 90 | +# CHECK64-NEXT: OffsetToRelocationEntries 0x80 |
0 commit comments