1Test creating ARM64EC importlib. 2 3RUN: split-file %s %t.dir && cd %t.dir 4 5RUN: llvm-dlltool -m arm64ec -d test.def -l test.lib 6RUN: llvm-nm --print-armap test.lib | FileCheck --check-prefix=ARMAP %s 7 8ARMAP: Archive map 9ARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll 10ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll 11ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll 12ARMAP-EMPTY: 13ARMAP-NEXT: Archive EC map 14ARMAP-NEXT: #func in test.dll 15ARMAP-NEXT: __IMPORT_DESCRIPTOR_test in test.dll 16ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll 17ARMAP-NEXT: __imp_aux_func in test.dll 18ARMAP-NEXT: __imp_func in test.dll 19ARMAP-NEXT: func in test.dll 20ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll 21 22RUN: llvm-dlltool -m arm64ec -d test.def -N test2.def -l test2.lib 23RUN: llvm-nm --print-armap test2.lib | FileCheck --check-prefix=ARMAP2 %s 24 25ARMAP2: Archive map 26ARMAP2-NEXT: __IMPORT_DESCRIPTOR_test in test.dll 27ARMAP2-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll 28ARMAP2-NEXT: __imp_otherfunc in test.dll 29ARMAP2-NEXT: otherfunc in test.dll 30ARMAP2-NEXT: test_NULL_THUNK_DATA in test.dll 31ARMAP2-EMPTY: 32ARMAP2-NEXT: Archive EC map 33ARMAP2-NEXT: #func in test.dll 34ARMAP2-NEXT: __IMPORT_DESCRIPTOR_test in test.dll 35ARMAP2-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll 36ARMAP2-NEXT: __imp_aux_func in test.dll 37ARMAP2-NEXT: __imp_func in test.dll 38ARMAP2-NEXT: func in test.dll 39ARMAP2-NEXT: test_NULL_THUNK_DATA in test.dll 40 41RUN: llvm-dlltool -m arm64ec -d test.def --input-native-def test2.def -l test3.lib 42RUN: llvm-nm --print-armap test3.lib | FileCheck --check-prefix=ARMAP2 %s 43 44RUN: not llvm-dlltool -m arm64 -d test.def -N test2.def -l test4.lib 2>&1 | FileCheck --check-prefix=ERR %s 45ERR: native .def file is supported only on arm64ec target 46 47RUN: llvm-dlltool -m arm64ec -d test3.def -l test3.lib 48RUN: llvm-readobj test3.lib | FileCheck --check-prefix=ALIAS %s 49 50ALIAS: File: test.dll 51ALIAS-NEXT: Format: COFF-import-file-ARM64EC 52ALIAS-NEXT: Type: code 53ALIAS-NEXT: Name type: export as 54ALIAS-NEXT: Export name: efunc 55ALIAS-NEXT: Symbol: __imp_func 56ALIAS-NEXT: Symbol: func 57ALIAS-NEXT: Symbol: __imp_aux_func 58ALIAS-NEXT: Symbol: #func 59ALIAS-EMPTY: 60ALIAS-NEXT: File: test.dll 61ALIAS-NEXT: Format: COFF-import-file-ARM64EC 62ALIAS-NEXT: Type: code 63ALIAS-NEXT: Name type: export as 64ALIAS-NEXT: Export name: efunc 65ALIAS-NEXT: Symbol: __imp_efunc 66ALIAS-NEXT: Symbol: efunc 67ALIAS-NEXT: Symbol: __imp_aux_efunc 68ALIAS-NEXT: Symbol: #efunc 69 70#--- test.def 71LIBRARY test.dll 72EXPORTS 73 func 74 75#--- test2.def 76LIBRARY test.dll 77EXPORTS 78 otherfunc 79 80#--- test3.def 81LIBRARY test.dll 82EXPORTS 83 func == efunc 84 efunc 85