brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.2 KiB · a93123b Raw
196 lines · yaml
1## Test that yaml2obj automatically sets fields of the auxiliary file header2## if not set explicitly.3 4## Case1: if text/data/bss/tdata/tbss/loader sections are set and corresponding5##        fields in the aux header are omitted, we use the derived values of6##        those sections to set corresponding fields.7# RUN: yaml2obj %s --docnum=1 -o %t18# RUN: llvm-readobj --auxiliary-header %t1 | FileCheck %s --check-prefix=CASE19 10# CASE1:      AuxiliaryHeader {11# CASE1-NEXT:   Magic: 0x10B12# CASE1-NEXT:   Version: 0x113# CASE1-NEXT:   Size of .text section: 0x514# CASE1-NEXT:   Size of .data section: 0x515# CASE1-NEXT:   Size of .bss section: 0x516# CASE1-NEXT:   Entry point address: 0x017# CASE1-NEXT:   .text section start address: 0x018# CASE1-NEXT:   .data section start address: 0x019# CASE1-NEXT:   TOC anchor address: 0x020# CASE1-NEXT:   Section number of entryPoint: 021# CASE1-NEXT:   Section number of .text: 222# CASE1-NEXT:   Section number of .data: 423# CASE1-NEXT:   Section number of TOC: 024# CASE1-NEXT:   Section number of loader data: 1225# CASE1-NEXT:   Section number of .bss: 626# CASE1-NEXT:   Maxium alignment of .text: 0x027# CASE1-NEXT:   Maxium alignment of .data: 0x028# CASE1-NEXT:   Module type: 0x029# CASE1-NEXT:   CPU type of objects: 0x030# CASE1-NEXT:   (Reserved): 0x031# CASE1-NEXT:   Maximum stack size: 0x032# CASE1-NEXT:   Maximum data size: 0x033# CASE1-NEXT:   Reserved for debugger: 0x034# CASE1-NEXT:   Text page size: 0x035# CASE1-NEXT:   Data page size: 0x036# CASE1-NEXT:   Stack page size: 0x037# CASE1-NEXT:   Flag: 0x038# CASE1-NEXT:   Alignment of thread-local storage: 0x039# CASE1-NEXT:   Section number for .tdata: 840# CASE1-NEXT:   Section number for .tbss: 1041# CASE1-NEXT: }42 43--- !XCOFF44FileHeader:45  MagicNumber: [[MAGIC=0x1DF]]46AuxiliaryHeader:47  Magic: 0x10B48Sections:49  - Flags:       [ STYP_PAD ]50    SectionData: "1234"51## Set two sections with different contents for a given type to52## demonstrate that the values in the aux header depend on the first one.53  - Flags:       [ STYP_TEXT ]54    SectionData: "1234000000"55  - Flags:       [ STYP_TEXT ]56    SectionData: "1234"57  - Flags:       [ STYP_DATA ]58    SectionData: "1234000000"59  - Flags:       [ STYP_DATA ]60    SectionData: "1234"61  - Flags:       [ STYP_BSS ]62    SectionData: "1234000000"63  - Flags:       [ STYP_BSS ]64    SectionData: "1234"65  - Flags:       [ STYP_TDATA ]66    SectionData: "1234000000"67  - Flags:       [ STYP_TDATA ]68    SectionData: "1234"69  - Flags:       [ STYP_TBSS ]70    SectionData: "1234000000"71  - Flags:       [ STYP_TBSS ]72    SectionData: "1234"73  - Flags:       [ STYP_LOADER ]74    SectionData: "1234000000"75  - Flags:       [ STYP_LOADER ]76    SectionData: "1234"77 78## Case2: same as case1, except producing 64-bit output.79# RUN: yaml2obj %s --docnum=1 -DMAGIC=0x1F7 -o %t280# RUN: llvm-readobj --auxiliary-header %t2 | FileCheck %s --check-prefix=CASE281 82# CASE2:      AuxiliaryHeader {83# CASE2-NEXT:   Magic: 0x10B84# CASE2-NEXT:   Version: 0x185# CASE2-NEXT:   Reserved for debugger: 0x086# CASE2-NEXT:   .text section start address: 0x087# CASE2-NEXT:   .data section start address: 0x088# CASE2-NEXT:   TOC anchor address: 0x089# CASE2-NEXT:   Section number of entryPoint: 090# CASE2-NEXT:   Section number of .text: 291# CASE2-NEXT:   Section number of .data: 492# CASE2-NEXT:   Section number of TOC: 093# CASE2-NEXT:   Section number of loader data: 1294# CASE2-NEXT:   Section number of .bss: 695# CASE2-NEXT:   Maxium alignment of .text: 0x096# CASE2-NEXT:   Maxium alignment of .data: 0x097# CASE2-NEXT:   Module type: 0x098# CASE2-NEXT:   CPU type of objects: 0x099# CASE2-NEXT:   (Reserved): 0x0100# CASE2-NEXT:   Text page size: 0x0101# CASE2-NEXT:   Data page size: 0x0102# CASE2-NEXT:   Stack page size: 0x0103# CASE2-NEXT:   Flag: 0x80104# CASE2-NEXT:   Alignment of thread-local storage: 0x0105# CASE2-NEXT:   Size of .text section: 0x5106# CASE2-NEXT:   Size of .data section: 0x5107# CASE2-NEXT:   Size of .bss section: 0x5108# CASE2-NEXT:   Entry point address: 0x0109# CASE2-NEXT:   Maximum stack size: 0x0110# CASE2-NEXT:   Maximum data size: 0x0111# CASE2-NEXT:   Section number for .tdata: 8112# CASE2-NEXT:   Section number for .tbss: 10113# CASE2-NEXT:   Additional flags 64-bit XCOFF: 0x8000114# CASE2-NEXT: }115 116## Case3: if all fields in the aux header are omitted and text/data/bss/tdata/tbss/loader117##        sections are not set, we set the fields using default values.118# RUN: yaml2obj %s --docnum=2 -o %t3119# RUN: llvm-readobj --auxiliary-header %t3 | FileCheck %s --check-prefix=CASE3120 121# CASE3:      AuxiliaryHeader {122# CASE3-NEXT:   Magic: 0x1123# CASE3-NEXT:   Version: 0x1124# CASE3-NEXT:   Size of .text section: 0x0125# CASE3-NEXT:   Size of .data section: 0x0126# CASE3-NEXT:   Size of .bss section: 0x0127# CASE3-NEXT:   Entry point address: 0x0128# CASE3-NEXT:   .text section start address: 0x0129# CASE3-NEXT:   .data section start address: 0x0130# CASE3-NEXT:   TOC anchor address: 0x0131# CASE3-NEXT:   Section number of entryPoint: 0132# CASE3-NEXT:   Section number of .text: 0133# CASE3-NEXT:   Section number of .data: 0134# CASE3-NEXT:   Section number of TOC: 0135# CASE3-NEXT:   Section number of loader data: 0136# CASE3-NEXT:   Section number of .bss: 0137# CASE3-NEXT:   Maxium alignment of .text: 0x0138# CASE3-NEXT:   Maxium alignment of .data: 0x0139# CASE3-NEXT:   Module type: 0x0140# CASE3-NEXT:   CPU type of objects: 0x0141# CASE3-NEXT:   (Reserved): 0x0142# CASE3-NEXT:   Maximum stack size: 0x0143# CASE3-NEXT:   Maximum data size: 0x0144# CASE3-NEXT:   Reserved for debugger: 0x0145# CASE3-NEXT:   Text page size: 0x0146# CASE3-NEXT:   Data page size: 0x0147# CASE3-NEXT:   Stack page size: 0x0148# CASE3-NEXT:   Flag: 0x0149# CASE3-NEXT:   Alignment of thread-local storage: 0x0150# CASE3-NEXT:   Section number for .tdata: 0151# CASE3-NEXT:   Section number for .tbss: 0152# CASE3-NEXT: }153 154--- !XCOFF155FileHeader:156  MagicNumber: [[MAGIC=0x1DF]]157AuxiliaryHeader:158 159## Case4: same as case3, except producing 64-bit output.160# RUN: yaml2obj %s --docnum=2 -DMAGIC=0x1F7 -o %t4161# RUN: llvm-readobj --auxiliary-header %t4 | FileCheck %s --check-prefix=CASE4162 163# CASE4:      AuxiliaryHeader {164# CASE4-NEXT:   Magic: 0x1165# CASE4-NEXT:   Version: 0x1166# CASE4-NEXT:   Reserved for debugger: 0x0167# CASE4-NEXT:   .text section start address: 0x0168# CASE4-NEXT:   .data section start address: 0x0169# CASE4-NEXT:   TOC anchor address: 0x0170# CASE4-NEXT:   Section number of entryPoint: 0171# CASE4-NEXT:   Section number of .text: 0172# CASE4-NEXT:   Section number of .data: 0173# CASE4-NEXT:   Section number of TOC: 0174# CASE4-NEXT:   Section number of loader data: 0175# CASE4-NEXT:   Section number of .bss: 0176# CASE4-NEXT:   Maxium alignment of .text: 0x0177# CASE4-NEXT:   Maxium alignment of .data: 0x0178# CASE4-NEXT:   Module type: 0x0179# CASE4-NEXT:   CPU type of objects: 0x0180# CASE4-NEXT:   (Reserved): 0x0181# CASE4-NEXT:   Text page size: 0x0182# CASE4-NEXT:   Data page size: 0x0183# CASE4-NEXT:   Stack page size: 0x0184# CASE4-NEXT:   Flag: 0x80185# CASE4-NEXT:   Alignment of thread-local storage: 0x0186# CASE4-NEXT:   Size of .text section: 0x0187# CASE4-NEXT:   Size of .data section: 0x0188# CASE4-NEXT:   Size of .bss section: 0x0189# CASE4-NEXT:   Entry point address: 0x0190# CASE4-NEXT:   Maximum stack size: 0x0191# CASE4-NEXT:   Maximum data size: 0x0192# CASE4-NEXT:   Section number for .tdata: 0193# CASE4-NEXT:   Section number for .tbss: 0194# CASE4-NEXT:   Additional flags 64-bit XCOFF: 0x8000195# CASE4-NEXT: }196