Verify that llvm-ar uses COFF archive format by ensuring that archive map is sorted. RUN: rm -rf %t.dir && split-file %s %t.dir && cd %t.dir RUN: yaml2obj coff-symtab.yaml -o coff-symtab.obj RUN: llvm-ar crs out.a coff-symtab.obj RUN: llvm-nm --print-armap out.a | FileCheck %s RUN: llvm-as coff-symtab.ll -o coff-symtab.bc RUN: llvm-ar crs out2.a coff-symtab.bc RUN: llvm-nm --print-armap out2.a | FileCheck %s RUN: yaml2obj elf.yaml -o coff-symtab.o RUN: llvm-ar crs --format coff out3.a coff-symtab.o RUN: llvm-nm --print-armap out3.a | FileCheck %s Create an empty archive with no symbol map, add a COFF file to it and check that the output archive is a COFF archive. RUN: llvm-ar --format coff rcS out4.a RUN: llvm-ar rs out4.a coff-symtab.obj RUN: llvm-nm --print-armap out4.a | FileCheck %s CHECK: Archive map CHECK-NEXT: a in coff-symtab CHECK-NEXT: b in coff-symtab CHECK-NEXT: c in coff-symtab CHECK-EMPTY: #--- coff-symtab.yaml --- !COFF header: Machine: IMAGE_FILE_MACHINE_UNKNOWN Characteristics: [ ] sections: - Name: .text Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] Alignment: 4 SectionData: '' symbols: - Name: b Value: 0 SectionNumber: 1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_FUNCTION StorageClass: IMAGE_SYM_CLASS_EXTERNAL - Name: c Value: 0 SectionNumber: 1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_FUNCTION StorageClass: IMAGE_SYM_CLASS_EXTERNAL - Name: a Value: 0 SectionNumber: 1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_FUNCTION StorageClass: IMAGE_SYM_CLASS_EXTERNAL ... #--- coff-symtab.ll target triple = "x86_64-unknown-windows-msvc" define void @b() { ret void } define void @c() { ret void } define void @a() { ret void } #--- elf.yaml --- !ELF FileHeader: Class: ELFCLASS64 Data : ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS Flags: [ SHF_ALLOC, SHF_EXECINSTR ] AddressAlign: 0x0000000000000004 Content: '' Symbols: - Name: b Binding: STB_GLOBAL Section: .text - Name: c Binding: STB_GLOBAL Section: .text - Name: a Binding: STB_GLOBAL Section: .text ...