Test creating ARM64EC importlib. RUN: split-file %s %t.dir && cd %t.dir RUN: llvm-lib -machine:arm64ec -def:test.def -out:test.lib RUN: llvm-nm --print-armap test.lib | FileCheck -check-prefix=ARMAP %s ARMAP: Archive map ARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll ARMAP-EMPTY: ARMAP-NEXT: Archive EC map ARMAP-NEXT: #expname in test.dll ARMAP-NEXT: #funcexp in test.dll ARMAP-NEXT: #mangledfunc in test.dll ARMAP-NEXT: ?test_cpp_func@@$$hYAHPEAX@Z in test.dll ARMAP-NEXT: ?test_cpp_func@@YAHPEAX@Z in test.dll ARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll ARMAP-NEXT: __imp_?test_cpp_func@@YAHPEAX@Z in test.dll ARMAP-NEXT: __imp_aux_?test_cpp_func@@YAHPEAX@Z in test.dll ARMAP-NEXT: __imp_aux_expname in test.dll ARMAP-NEXT: __imp_aux_funcexp in test.dll ARMAP-NEXT: __imp_aux_mangledfunc in test.dll ARMAP-NEXT: __imp_dataexp in test.dll ARMAP-NEXT: __imp_expname in test.dll ARMAP-NEXT: __imp_funcexp in test.dll ARMAP-NEXT: __imp_mangledfunc in test.dll ARMAP-NEXT: expname in test.dll ARMAP-NEXT: funcexp in test.dll ARMAP-NEXT: mangledfunc in test.dll ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll RUN: llvm-readobj test.lib | FileCheck -check-prefix=READOBJ %s READOBJ: File: test.lib(test.dll) READOBJ-NEXT: Format: COFF-ARM64{{$}} READOBJ-NEXT: Arch: aarch64 READOBJ-NEXT: AddressSize: 64bit READOBJ-EMPTY: READOBJ-NEXT: File: test.lib(test.dll) READOBJ-NEXT: Format: COFF-ARM64{{$}} READOBJ-NEXT: Arch: aarch64 READOBJ-NEXT: AddressSize: 64bit READOBJ-EMPTY: READOBJ-NEXT: File: test.lib(test.dll) READOBJ-NEXT: Format: COFF-ARM64{{$}} READOBJ-NEXT: Arch: aarch64 READOBJ-NEXT: AddressSize: 64bit READOBJ-EMPTY: READOBJ-NEXT: File: test.dll READOBJ-NEXT: Format: COFF-import-file-ARM64EC READOBJ-NEXT: Type: code READOBJ-NEXT: Name type: export as READOBJ-NEXT: Export name: funcexp READOBJ-NEXT: Symbol: __imp_funcexp READOBJ-NEXT: Symbol: funcexp READOBJ-NEXT: Symbol: __imp_aux_funcexp READOBJ-NEXT: Symbol: #funcexp READOBJ-EMPTY: READOBJ-NEXT: File: test.dll READOBJ-NEXT: Format: COFF-import-file-ARM64EC READOBJ-NEXT: Type: code READOBJ-NEXT: Name type: export as READOBJ-NEXT: Export name: mangledfunc READOBJ-NEXT: Symbol: __imp_mangledfunc READOBJ-NEXT: Symbol: mangledfunc READOBJ-NEXT: Symbol: __imp_aux_mangledfunc READOBJ-NEXT: Symbol: #mangledfunc READOBJ-EMPTY: READOBJ-NEXT: File: test.dll READOBJ-NEXT: Format: COFF-import-file-ARM64EC READOBJ-NEXT: Type: code READOBJ-NEXT: Name type: export as READOBJ-NEXT: Export name: ?test_cpp_func@@YAHPEAX@Z READOBJ-NEXT: Symbol: __imp_?test_cpp_func@@YAHPEAX@Z READOBJ-NEXT: Symbol: ?test_cpp_func@@YAHPEAX@Z READOBJ-NEXT: Symbol: __imp_aux_?test_cpp_func@@YAHPEAX@Z READOBJ-NEXT: Symbol: ?test_cpp_func@@$$hYAHPEAX@Z READOBJ-EMPTY: READOBJ-NEXT: File: test.dll READOBJ-NEXT: Format: COFF-import-file-ARM64EC READOBJ-NEXT: Type: code READOBJ-NEXT: Name type: export as READOBJ-NEXT: Export name: expname READOBJ-NEXT: Symbol: __imp_expname READOBJ-NEXT: Symbol: expname READOBJ-NEXT: Symbol: __imp_aux_expname READOBJ-NEXT: Symbol: #expname READOBJ-EMPTY: READOBJ-NEXT: File: test.dll READOBJ-NEXT: Format: COFF-import-file-ARM64EC READOBJ-NEXT: Type: data READOBJ-NEXT: Name type: name READOBJ-NEXT: Export name: dataexp READOBJ-NEXT: Symbol: __imp_dataexp Creating a new lib containing the existing lib: RUN: llvm-lib -machine:arm64ec test.lib -out:test2.lib RUN: llvm-nm --print-armap test2.lib | FileCheck -check-prefix=ARMAP %s #--- test.def LIBRARY test.dll EXPORTS funcexp #mangledfunc ?test_cpp_func@@YAHPEAX@Z expname=impname dataexp DATA