xref: /llvm-project/llvm/test/tools/llvm-dlltool/arm64ec.test (revision cffe1153f4466b1602d4778e57c3bd8663cef5ec)
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