1# RUN: yaml2obj < %s > %t.obj 2# 3# RUN: lld-link /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib 4# RUN: llvm-readobj --coff-basereloc %t.exe | FileCheck %s -check-prefix=BASEREL 5# 6# RUN: lld-link /out:%t.exe /entry:main /fixed %t.obj %p/Inputs/std64.lib 7# RUN: llvm-readobj --coff-basereloc %t.exe | FileCheck %s -check-prefix=NOBASEREL 8# 9# BASEREL: BaseReloc [ 10# BASEREL-NEXT: Entry { 11# BASEREL-NEXT: Type: DIR64 12# BASEREL-NEXT: Address: 0x1007 13# BASEREL-NEXT: } 14# BASEREL-NEXT: Entry { 15# BASEREL-NEXT: Type: DIR64 16# BASEREL-NEXT: Address: 0x100C 17# BASEREL-NEXT: } 18# BASEREL-NEXT: Entry { 19# BASEREL-NEXT: Type: DIR64 20# BASEREL-NEXT: Address: 0x101E 21# BASEREL-NEXT: } 22# BASEREL-NEXT: Entry { 23# BASEREL-NEXT: Type: ABSOLUTE 24# BASEREL-NEXT: Address: 0x1000 25# BASEREL-NEXT: } 26# BASEREL-NEXT: Entry { 27# BASEREL-NEXT: Type: DIR64 28# BASEREL-NEXT: Address: 0x4007 29# BASEREL-NEXT: } 30# BASEREL-NEXT: Entry { 31# BASEREL-NEXT: Type: DIR64 32# BASEREL-NEXT: Address: 0x400C 33# BASEREL-NEXT: } 34# BASEREL-NEXT: Entry { 35# BASEREL-NEXT: Type: DIR64 36# BASEREL-NEXT: Address: 0x401E 37# BASEREL-NEXT: } 38# BASEREL-NEXT: Entry { 39# BASEREL-NEXT: Type: ABSOLUTE 40# BASEREL-NEXT: Address: 0x4000 41# BASEREL-NEXT: } 42# 43# NOBASEREL: BaseReloc [ 44# NOBASEREL-NEXT: ] 45# 46# RUN: lld-link /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib 47# RUN: llvm-readobj --file-headers --sections %t.exe | FileCheck %s \ 48# RUN: --check-prefix=BASEREL-HEADER 49# 50# RUN: lld-link /out:%t.exe /entry:main /fixed %t.obj %p/Inputs/std64.lib 51# RUN: llvm-readobj --file-headers %t.exe | FileCheck %s \ 52# RUN: --check-prefix=NOBASEREL-HEADER 53# 54# BASEREL-HEADER-NOT: IMAGE_FILE_RELOCS_STRIPPED 55# 56# NOBASEREL-HEADER: IMAGE_FILE_RELOCS_STRIPPED 57# 58# BASEREL-HEADER: BaseRelocationTableRVA: 0x5000 59# BASEREL-HEADER: BaseRelocationTableSize: 0x20 60# BASEREL-HEADER: Name: .reloc (2E 72 65 6C 6F 63 00 00) 61# BASEREL-HEADER-NEXT: VirtualSize: 0x20 62# BASEREL-HEADER-NEXT: VirtualAddress: 0x5000 63# BASEREL-HEADER-NEXT: RawDataSize: 512 64# BASEREL-HEADER-NEXT: PointerToRawData: 0xC00 65# BASEREL-HEADER-NEXT: PointerToRelocations: 0x0 66# BASEREL-HEADER-NEXT: PointerToLineNumbers: 0x0 67# BASEREL-HEADER-NEXT: RelocationCount: 0 68# BASEREL-HEADER-NEXT: LineNumberCount: 0 69# BASEREL-HEADER-NEXT: Characteristics [ (0x42000040) 70# BASEREL-HEADER-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) 71# BASEREL-HEADER-NEXT: IMAGE_SCN_MEM_DISCARDABLE (0x2000000) 72# BASEREL-HEADER-NEXT: IMAGE_SCN_MEM_READ (0x40000000) 73# BASEREL-HEADER-NEXT: ] 74 75--- !COFF 76header: 77 Machine: IMAGE_FILE_MACHINE_AMD64 78 Characteristics: [] 79sections: 80 - Name: .text 81 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] 82 Alignment: 4096 83 SectionData: B800000000000000005068000000000000000068000000000000000050E8000000000000000050E8000000000000000050E80000000000000000 84 Relocations: 85 - VirtualAddress: 0 86 SymbolName: abs_symbol 87 Type: IMAGE_REL_AMD64_ADDR64 88 - VirtualAddress: 7 89 SymbolName: caption 90 Type: IMAGE_REL_AMD64_ADDR64 91 - VirtualAddress: 12 92 SymbolName: message 93 Type: IMAGE_REL_AMD64_ADDR64 94 - VirtualAddress: 18 95 SymbolName: MessageBoxA 96 Type: IMAGE_REL_AMD64_REL32 97 - VirtualAddress: 24 98 SymbolName: ExitProcess 99 Type: IMAGE_REL_AMD64_REL32 100 - VirtualAddress: 30 101 SymbolName: __ImageBase 102 Type: IMAGE_REL_AMD64_ADDR64 103 - Name: .text2 104 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] 105 Alignment: 4096 106 SectionData: B800000000000000005068000000000000000068000000000000000050E8000000000000000050E8000000000000000050E80000000000000000 107 Relocations: 108 - VirtualAddress: 0 109 SymbolName: abs_symbol 110 Type: IMAGE_REL_AMD64_ADDR64 111 - VirtualAddress: 7 112 SymbolName: caption 113 Type: IMAGE_REL_AMD64_ADDR64 114 - VirtualAddress: 12 115 SymbolName: message 116 Type: IMAGE_REL_AMD64_ADDR64 117 - VirtualAddress: 18 118 SymbolName: MessageBoxA 119 Type: IMAGE_REL_AMD64_REL32 120 - VirtualAddress: 24 121 SymbolName: ExitProcess 122 Type: IMAGE_REL_AMD64_REL32 123 - VirtualAddress: 30 124 SymbolName: __ImageBase 125 Type: IMAGE_REL_AMD64_ADDR64 126 - Name: .data 127 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 128 Alignment: 4 129 SectionData: 48656C6C6F0048656C6C6F20576F726C6400 130symbols: 131 - Name: "@comp.id" 132 Value: 10394907 133 SectionNumber: 65535 134 SimpleType: IMAGE_SYM_TYPE_NULL 135 ComplexType: IMAGE_SYM_DTYPE_NULL 136 StorageClass: IMAGE_SYM_CLASS_STATIC 137 - Name: .text 138 Value: 0 139 SectionNumber: 1 140 SimpleType: IMAGE_SYM_TYPE_NULL 141 ComplexType: IMAGE_SYM_DTYPE_NULL 142 StorageClass: IMAGE_SYM_CLASS_STATIC 143 SectionDefinition: 144 Length: 28 145 NumberOfRelocations: 6 146 NumberOfLinenumbers: 0 147 CheckSum: 0 148 Number: 0 149 - Name: .text2 150 Value: 0 151 SectionNumber: 1 152 SimpleType: IMAGE_SYM_TYPE_NULL 153 ComplexType: IMAGE_SYM_DTYPE_NULL 154 StorageClass: IMAGE_SYM_CLASS_STATIC 155 SectionDefinition: 156 Length: 28 157 NumberOfRelocations: 6 158 NumberOfLinenumbers: 0 159 CheckSum: 0 160 Number: 0 161 - Name: .data 162 Value: 0 163 SectionNumber: 3 164 SimpleType: IMAGE_SYM_TYPE_NULL 165 ComplexType: IMAGE_SYM_DTYPE_NULL 166 StorageClass: IMAGE_SYM_CLASS_STATIC 167 SectionDefinition: 168 Length: 18 169 NumberOfRelocations: 0 170 NumberOfLinenumbers: 0 171 CheckSum: 0 172 Number: 0 173 - Name: MessageBoxA 174 Value: 0 175 SectionNumber: 0 176 SimpleType: IMAGE_SYM_TYPE_NULL 177 ComplexType: IMAGE_SYM_DTYPE_NULL 178 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 179 - Name: ExitProcess 180 Value: 0 181 SectionNumber: 0 182 SimpleType: IMAGE_SYM_TYPE_NULL 183 ComplexType: IMAGE_SYM_DTYPE_NULL 184 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 185 - Name: message 186 Value: 6 187 SectionNumber: 2 188 SimpleType: IMAGE_SYM_TYPE_NULL 189 ComplexType: IMAGE_SYM_DTYPE_NULL 190 StorageClass: IMAGE_SYM_CLASS_STATIC 191 - Name: main 192 Value: 0 193 SectionNumber: 1 194 SimpleType: IMAGE_SYM_TYPE_NULL 195 ComplexType: IMAGE_SYM_DTYPE_NULL 196 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 197 - Name: caption 198 Value: 0 199 SectionNumber: 2 200 SimpleType: IMAGE_SYM_TYPE_NULL 201 ComplexType: IMAGE_SYM_DTYPE_NULL 202 StorageClass: IMAGE_SYM_CLASS_STATIC 203 - Name: abs_symbol 204 Value: 0xDEADBEEF 205 SectionNumber: -1 206 SimpleType: IMAGE_SYM_TYPE_NULL 207 ComplexType: IMAGE_SYM_DTYPE_NULL 208 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 209 - Name: __ImageBase 210 Value: 0 211 SectionNumber: 0 212 SimpleType: IMAGE_SYM_TYPE_NULL 213 ComplexType: IMAGE_SYM_DTYPE_NULL 214 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 215... 216