1 // REQUIRES
: aarch64
, x86
2 // RUN
: split-file
%s
%t.dir
&& cd
%t.dir
4 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64-windows sym.s
-o sym-aarch64.obj
5 // RUN
: llvm-mc
-filetype
=obj
-triple
=arm64ec-windows sym.s
-o sym-arm64ec.obj
6 // RUN
: llvm-mc
-filetype
=obj
-triple
=x86_64-windows sym.s
-o sym-x86_64.obj
7 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64-windows symref.s
-o symref-aarch64.obj
8 // RUN
: llvm-mc
-filetype
=obj
-triple
=arm64ec-windows symref.s
-o symref-arm64ec.obj
9 // RUN
: llvm-mc
-filetype
=obj
-triple
=x86_64-windows symref.s
-o symref-x86_64.obj
10 // RUN
: llvm-lib
-machine
:arm64x
-out
:sym.lib sym-aarch64.obj sym-arm64ec.obj
12 // Check that native object files can
't reference EC symbols.
14 // RUN: not lld-link -machine:arm64x -dll -noentry -out:err1.dll symref-aarch64.obj sym-arm64ec.obj \
15 // RUN: 2>&1 | FileCheck --check-prefix=UNDEF %s
16 // UNDEF: lld-link: error: undefined symbol: sym
17 // UNDEF-NEXT: >>> referenced by symref-aarch64.obj:(.data)
19 // Check that EC object files can't reference native symbols.
21 // RUN
: not lld-link
-machine
:arm64x
-dll
-noentry
-out
:out.dll symref-arm64ec.obj sym-aarch64.obj \
22 // RUN
: 2>&1 | FileCheck
--check-prefix
=UNDEFEC
%s
23 // UNDEFEC
: lld-link
: error
: undefined symbol
: sym
24 // UNDEFEC-NEXT
: >>> referenced by symref-arm64ec.obj
:(.data)
26 // RUN
: not lld-link
-machine
:arm64x
-dll
-noentry
-out
:out.dll symref-x86_64.obj sym-aarch64.obj \
27 // RUN
: 2>&1 | FileCheck
--check-prefix
=UNDEFX86
%s
28 // UNDEFX86
: lld-link
: error
: undefined symbol
: sym
29 // UNDEFX86-NEXT
: >>> referenced by symref-x86_64.obj
:(.data)
31 // RUN
: not lld-link
-machine
:arm64x
-dll
-noentry
-out
:err2.dll symref-aarch64.obj sym-x86_64.obj \
32 // RUN
: 2>&1 | FileCheck
--check-prefix
=UNDEF
%s
34 // Check that ARM64X target can have the same symbol names in both native
and EC namespaces.
36 // RUN
: lld-link
-machine
:arm64x
-dll
-noentry
-out
:out.dll symref-aarch64.obj sym-aarch64.obj \
37 // RUN
: symref-arm64ec.obj sym-x86_64.obj
39 // Check that ARM64X target can reference both native
and EC symbols from an archive.
41 // RUN
: lld-link
-machine
:arm64x
-dll
-noentry
-out
:out2.dll symref-aarch64.obj symref-arm64ec.obj sym.lib