@@ -11,9 +11,23 @@ ARMAP-NEXT: __NULL_IMPORT_DESCRIPTOR in test.dll
11
11
ARMAP-NEXT: test_NULL_THUNK_DATA in test.dll
12
12
ARMAP-EMPTY:
13
13
ARMAP-NEXT: Archive EC map
14
+ ARMAP-NEXT: #expname in test.dll
15
+ ARMAP-NEXT: #funcexp in test.dll
16
+ ARMAP-NEXT: #mangledfunc in test.dll
17
+ ARMAP-NEXT: ?test_cpp_func@@$$hYAHPEAX@Z in test.dll
18
+ ARMAP-NEXT: ?test_cpp_func@@YAHPEAX@Z in test.dll
19
+ ARMAP-NEXT: __imp_?test_cpp_func@@YAHPEAX@Z in test.dll
20
+ ARMAP-NEXT: __imp_aux_?test_cpp_func@@YAHPEAX@Z in test.dll
21
+ ARMAP-NEXT: __imp_aux_expname in test.dll
22
+ ARMAP-NEXT: __imp_aux_funcexp in test.dll
23
+ ARMAP-NEXT: __imp_aux_mangledfunc in test.dll
14
24
ARMAP-NEXT: __imp_dataexp in test.dll
25
+ ARMAP-NEXT: __imp_expname in test.dll
15
26
ARMAP-NEXT: __imp_funcexp in test.dll
27
+ ARMAP-NEXT: __imp_mangledfunc in test.dll
28
+ ARMAP-NEXT: expname in test.dll
16
29
ARMAP-NEXT: funcexp in test.dll
30
+ ARMAP-NEXT: mangledfunc in test.dll
17
31
18
32
RUN: llvm-readobj test.lib | FileCheck -check-prefix=READOBJ %s
19
33
@@ -35,10 +49,42 @@ READOBJ-EMPTY:
35
49
READOBJ-NEXT: File: test.dll
36
50
READOBJ-NEXT: Format: COFF-import-file-ARM64EC
37
51
READOBJ-NEXT: Type: code
38
- READOBJ-NEXT: Name type: name
52
+ READOBJ-NEXT: Name type: export as
39
53
READOBJ-NEXT: Export name: funcexp
40
54
READOBJ-NEXT: Symbol: __imp_funcexp
41
55
READOBJ-NEXT: Symbol: funcexp
56
+ READOBJ-NEXT: Symbol: __imp_aux_funcexp
57
+ READOBJ-NEXT: Symbol: #funcexp
58
+ READOBJ-EMPTY:
59
+ READOBJ-NEXT: File: test.dll
60
+ READOBJ-NEXT: Format: COFF-import-file-ARM64EC
61
+ READOBJ-NEXT: Type: code
62
+ READOBJ-NEXT: Name type: export as
63
+ READOBJ-NEXT: Export name: mangledfunc
64
+ READOBJ-NEXT: Symbol: __imp_mangledfunc
65
+ READOBJ-NEXT: Symbol: mangledfunc
66
+ READOBJ-NEXT: Symbol: __imp_aux_mangledfunc
67
+ READOBJ-NEXT: Symbol: #mangledfunc
68
+ READOBJ-EMPTY:
69
+ READOBJ-NEXT: File: test.dll
70
+ READOBJ-NEXT: Format: COFF-import-file-ARM64EC
71
+ READOBJ-NEXT: Type: code
72
+ READOBJ-NEXT: Name type: export as
73
+ READOBJ-NEXT: Export name: ?test_cpp_func@@YAHPEAX@Z
74
+ READOBJ-NEXT: Symbol: __imp_?test_cpp_func@@YAHPEAX@Z
75
+ READOBJ-NEXT: Symbol: ?test_cpp_func@@YAHPEAX@Z
76
+ READOBJ-NEXT: Symbol: __imp_aux_?test_cpp_func@@YAHPEAX@Z
77
+ READOBJ-NEXT: Symbol: ?test_cpp_func@@$$hYAHPEAX@Z
78
+ READOBJ-EMPTY:
79
+ READOBJ-NEXT: File: test.dll
80
+ READOBJ-NEXT: Format: COFF-import-file-ARM64EC
81
+ READOBJ-NEXT: Type: code
82
+ READOBJ-NEXT: Name type: export as
83
+ READOBJ-NEXT: Export name: expname
84
+ READOBJ-NEXT: Symbol: __imp_expname
85
+ READOBJ-NEXT: Symbol: expname
86
+ READOBJ-NEXT: Symbol: __imp_aux_expname
87
+ READOBJ-NEXT: Symbol: #expname
42
88
READOBJ-EMPTY:
43
89
READOBJ-NEXT: File: test.dll
44
90
READOBJ-NEXT: Format: COFF-import-file-ARM64EC
@@ -51,8 +97,101 @@ Creating a new lib containing the existing lib:
51
97
RUN: llvm-lib -machine:arm64ec test.lib -out:test2.lib
52
98
RUN: llvm-nm --print-armap test2.lib | FileCheck -check-prefix=ARMAP %s
53
99
100
+
101
+ RUN: llvm-lib -machine:arm64ec -def:exportas.def -out:exportas.lib
102
+ RUN: llvm-nm --print-armap exportas.lib | FileCheck -check-prefix=EXPAS-ARMAP %s
103
+ RUN: llvm-readobj exportas.lib | FileCheck -check-prefix=EXPAS-READOBJ %s
104
+
105
+ EXPAS-ARMAP: Archive EC map
106
+ EXPAS-ARMAP-NEXT: #func1 in test.dll
107
+ EXPAS-ARMAP-NEXT: #func2 in test.dll
108
+ EXPAS-ARMAP-NEXT: #func3 in test.dll
109
+ EXPAS-ARMAP-NEXT: #func4 in test.dll
110
+ EXPAS-ARMAP-NEXT: __imp_aux_func1 in test.dll
111
+ EXPAS-ARMAP-NEXT: __imp_aux_func2 in test.dll
112
+ EXPAS-ARMAP-NEXT: __imp_aux_func3 in test.dll
113
+ EXPAS-ARMAP-NEXT: __imp_aux_func4 in test.dll
114
+ EXPAS-ARMAP-NEXT: __imp_data1 in test.dll
115
+ EXPAS-ARMAP-NEXT: __imp_data2 in test.dll
116
+ EXPAS-ARMAP-NEXT: __imp_func1 in test.dll
117
+ EXPAS-ARMAP-NEXT: __imp_func2 in test.dll
118
+ EXPAS-ARMAP-NEXT: __imp_func3 in test.dll
119
+ EXPAS-ARMAP-NEXT: __imp_func4 in test.dll
120
+ EXPAS-ARMAP-NEXT: func1 in test.dll
121
+ EXPAS-ARMAP-NEXT: func2 in test.dll
122
+ EXPAS-ARMAP-NEXT: func3 in test.dll
123
+ EXPAS-ARMAP-NEXT: func4 in test.dll
124
+
125
+ EXPAS-READOBJ: File: test.dll
126
+ EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
127
+ EXPAS-READOBJ-NEXT: Type: code
128
+ EXPAS-READOBJ-NEXT: Name type: export as
129
+ EXPAS-READOBJ-NEXT: Export name: func1
130
+ EXPAS-READOBJ-NEXT: Symbol: __imp_func1
131
+ EXPAS-READOBJ-NEXT: Symbol: func1
132
+ EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func1
133
+ EXPAS-READOBJ-NEXT: Symbol: #func1
134
+ EXPAS-READOBJ-EMPTY:
135
+ EXPAS-READOBJ-NEXT: File: test.dll
136
+ EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
137
+ EXPAS-READOBJ-NEXT: Type: code
138
+ EXPAS-READOBJ-NEXT: Name type: export as
139
+ EXPAS-READOBJ-NEXT: Export name: func2
140
+ EXPAS-READOBJ-NEXT: Symbol: __imp_func2
141
+ EXPAS-READOBJ-NEXT: Symbol: func2
142
+ EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func2
143
+ EXPAS-READOBJ-NEXT: Symbol: #func2
144
+ EXPAS-READOBJ-EMPTY:
145
+ EXPAS-READOBJ-NEXT: File: test.dll
146
+ EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
147
+ EXPAS-READOBJ-NEXT: Type: code
148
+ EXPAS-READOBJ-NEXT: Name type: export as
149
+ EXPAS-READOBJ-NEXT: Export name: #func3
150
+ EXPAS-READOBJ-NEXT: Symbol: __imp_func3
151
+ EXPAS-READOBJ-NEXT: Symbol: func3
152
+ EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func3
153
+ EXPAS-READOBJ-NEXT: Symbol: #func3
154
+ EXPAS-READOBJ-EMPTY:
155
+ EXPAS-READOBJ-NEXT: File: test.dll
156
+ EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
157
+ EXPAS-READOBJ-NEXT: Type: code
158
+ EXPAS-READOBJ-NEXT: Name type: export as
159
+ EXPAS-READOBJ-NEXT: Export name: #func4
160
+ EXPAS-READOBJ-NEXT: Symbol: __imp_func4
161
+ EXPAS-READOBJ-NEXT: Symbol: func4
162
+ EXPAS-READOBJ-NEXT: Symbol: __imp_aux_func4
163
+ EXPAS-READOBJ-NEXT: Symbol: #func4
164
+ EXPAS-READOBJ-EMPTY:
165
+ EXPAS-READOBJ-NEXT: File: test.dll
166
+ EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
167
+ EXPAS-READOBJ-NEXT: Type: data
168
+ EXPAS-READOBJ-NEXT: Name type: export as
169
+ EXPAS-READOBJ-NEXT: Export name: #data1
170
+ EXPAS-READOBJ-NEXT: Symbol: __imp_data1
171
+ EXPAS-READOBJ-EMPTY:
172
+ EXPAS-READOBJ-NEXT: File: test.dll
173
+ EXPAS-READOBJ-NEXT: Format: COFF-import-file-ARM64EC
174
+ EXPAS-READOBJ-NEXT: Type: data
175
+ EXPAS-READOBJ-NEXT: Name type: export as
176
+ EXPAS-READOBJ-NEXT: Export name: data2
177
+ EXPAS-READOBJ-NEXT: Symbol: __imp_data2
178
+
179
+
54
180
#--- test.def
55
181
LIBRARY test.dll
56
182
EXPORTS
57
183
funcexp
184
+ #mangledfunc
185
+ ?test_cpp_func@@YAHPEAX@Z
186
+ expname=impname
58
187
dataexp DATA
188
+
189
+ #--- exportas.def
190
+ LIBRARY test.dll
191
+ EXPORTS
192
+ #func1 EXPORTAS func1
193
+ func2 EXPORTAS func2
194
+ func3 EXPORTAS #func3
195
+ #func4 EXPORTAS #func4
196
+ data1 DATA EXPORTAS #data1
197
+ #data2 DATA EXPORTAS data2
0 commit comments