1Verify that llvm-ar uses COFF archive format by ensuring that archive map is sorted. 2 3RUN: rm -rf %t.dir && split-file %s %t.dir && cd %t.dir 4 5RUN: yaml2obj coff-symtab.yaml -o coff-symtab.obj 6RUN: llvm-ar crs out.a coff-symtab.obj 7RUN: llvm-nm --print-armap out.a | FileCheck %s 8 9RUN: llvm-as coff-symtab.ll -o coff-symtab.bc 10RUN: llvm-ar crs out2.a coff-symtab.bc 11RUN: llvm-nm --print-armap out2.a | FileCheck %s 12 13RUN: yaml2obj elf.yaml -o coff-symtab.o 14RUN: llvm-ar crs --format coff out3.a coff-symtab.o 15RUN: llvm-nm --print-armap out3.a | FileCheck %s 16 17Create an empty archive with no symbol map, add a COFF file to it and check that the output archive is a COFF archive. 18 19RUN: llvm-ar --format coff rcS out4.a 20RUN: llvm-ar rs out4.a coff-symtab.obj 21RUN: llvm-nm --print-armap out4.a | FileCheck %s 22 23CHECK: Archive map 24CHECK-NEXT: a in coff-symtab 25CHECK-NEXT: b in coff-symtab 26CHECK-NEXT: c in coff-symtab 27CHECK-EMPTY: 28 29#--- coff-symtab.yaml 30--- !COFF 31header: 32 Machine: IMAGE_FILE_MACHINE_UNKNOWN 33 Characteristics: [ ] 34sections: 35 - Name: .text 36 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] 37 Alignment: 4 38 SectionData: '' 39symbols: 40 - Name: b 41 Value: 0 42 SectionNumber: 1 43 SimpleType: IMAGE_SYM_TYPE_NULL 44 ComplexType: IMAGE_SYM_DTYPE_FUNCTION 45 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 46 - Name: c 47 Value: 0 48 SectionNumber: 1 49 SimpleType: IMAGE_SYM_TYPE_NULL 50 ComplexType: IMAGE_SYM_DTYPE_FUNCTION 51 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 52 - Name: a 53 Value: 0 54 SectionNumber: 1 55 SimpleType: IMAGE_SYM_TYPE_NULL 56 ComplexType: IMAGE_SYM_DTYPE_FUNCTION 57 StorageClass: IMAGE_SYM_CLASS_EXTERNAL 58... 59 60 61#--- coff-symtab.ll 62target triple = "x86_64-unknown-windows-msvc" 63 64define void @b() { ret void } 65define void @c() { ret void } 66define void @a() { ret void } 67 68#--- elf.yaml 69--- !ELF 70FileHeader: 71 Class: ELFCLASS64 72 Data : ELFDATA2LSB 73 Type: ET_REL 74 Machine: EM_X86_64 75Sections: 76 - Name: .text 77 Type: SHT_PROGBITS 78 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 79 AddressAlign: 0x0000000000000004 80 Content: '' 81Symbols: 82 - Name: b 83 Binding: STB_GLOBAL 84 Section: .text 85 - Name: c 86 Binding: STB_GLOBAL 87 Section: .text 88 - Name: a 89 Binding: STB_GLOBAL 90 Section: .text 91... 92