xref: /llvm-project/clang/test/Driver/ve-toolchain.cpp (revision 12949c952c4fbad776a860c003ccf176973278a0)
1 /// Check the behavior of toolchain for NEC Aurora VE
2 /// UNSUPPORTED: system-windows
3 
4 ///-----------------------------------------------------------------------------
5 /// Checking dwarf-version
6 
7 // RUN: %clangxx -### -g --target=ve-unknown-linux-gnu \
8 // RUN:     %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s
9 // DWARF_VER: "-dwarf-version=5"
10 
11 ///-----------------------------------------------------------------------------
12 /// Checking include-path
13 
14 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
15 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s -fuse-ld=ld \
16 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
17 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
18 // RUN:     2>&1 | FileCheck -check-prefix=DEFINC %s
19 // DEFINC: "-cc1"
20 // DEFINC-SAME: "-nostdsysteminc"
21 // DEFINC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
22 // DEFINC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
23 // DEFINC-SAME: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
24 // DEFINC-SAME: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
25 // DEFINC-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
26 // DEFINC-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
27 // DEFINC: nld"
28 // DEFINC-SAME: "-rpath" "[[SYSROOT]]/bin/../lib/ve-unknown-linux-gnu"
29 
30 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
31 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
32 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
33 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
34 // RUN:     -nostdlibinc 2>&1 | FileCheck -check-prefix=NOSTDLIBINC %s
35 // NOSTDLIBINC: "-cc1"
36 // NOSTDLIBINC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
37 // NOSTDLIBINC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
38 // NOSTDLIBINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
39 // NOSTDLIBINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
40 // NOSTDLIBINC-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
41 // NOSTDLIBINC-NOT: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
42 
43 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
44 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
45 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
46 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
47 // RUN:     -nobuiltininc 2>&1 | FileCheck -check-prefix=NOBUILTININC %s
48 // NOBUILTININC: "-cc1"
49 // NOBUILTININC-SAME: "-nobuiltininc"
50 // NOBUILTININC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
51 // NOBUILTININC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
52 // NOBUILTININC-SAME: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
53 // NOBUILTININC-SAME: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
54 // NOBUILTININC-NOT: "-internal-isystem" "[[RESOURCE_DIR]]/include"
55 // NOBUILTININC-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
56 
57 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
58 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
59 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
60 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
61 // RUN:     -nostdinc 2>&1 | FileCheck -check-prefix=NOSTDINC %s
62 // NOSTDINC: "-cc1"
63 // NOSTDINC-SAME: "-nobuiltininc"
64 // NOSTDINC-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
65 // NOSTDINC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
66 // NOSTDINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
67 // NOSTDINC-NOT: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
68 // NOSTDINC-NOT: "-internal-isystem" "[[RESOURCE_DIR]]/include"
69 // NOSTDINC-NOT: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
70 
71 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
72 // RUN:     --sysroot %S/Inputs/basic_ve_tree %s \
73 // RUN:     -ccc-install-dir %S/Inputs/basic_ve_tree/bin \
74 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
75 // RUN:     -nostdinc++ 2>&1 | FileCheck -check-prefix=NOSTDINCXX %s
76 // NOSTDINCXX: "-cc1"
77 // NOSTDINCXX-SAME: "-nostdinc++"
78 // NOSTDINCXX-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
79 // NOSTDINCXX-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
80 // NOSTDINCXX-NOT: "-internal-isystem" "{{.*}}/bin/../include/ve-unknown-linux-gnu/c++/v1"
81 // NOSTDINCXX-NOT: "-internal-isystem" "{{.*}}/bin/../include/c++/v1"
82 // NOSTDINCXX-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
83 // NOSTDINCXX-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
84 
85 ///-----------------------------------------------------------------------------
86 /// Checking environment variable NCC_CPLUS_INCLUDE_PATH
87 
88 // RUN: env NCC_CPLUS_INCLUDE_PATH=/test/test %clangxx -### \
89 // RUN:     --target=ve-unknown-linux-gnu %s \
90 // RUN:     --sysroot %S/Inputs/basic_ve_tree \
91 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
92 // RUN:     2>&1 | FileCheck -check-prefix=DEFINCENV %s
93 
94 // DEFINCENV: "-cc1"
95 // DEFINCENV-SAME: "-nostdsysteminc"
96 // DEFINCENV-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
97 // DEFINCENV-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
98 // DEFINCENV-SAME: "-internal-isystem" "/test/test"
99 // DEFINCENV-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
100 // DEFINCENV-SAME: "-internal-isystem" "[[SYSROOT]]/opt/nec/ve/include"
101 
102 ///-----------------------------------------------------------------------------
103 /// Checking -faddrsig
104 
105 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
106 // RUN:     %s 2>&1 | FileCheck -check-prefix=DEFADDRSIG %s
107 // DEFADDRSIG: "-cc1"
108 // DEFADDRSIG-NOT: "-faddrsig"
109 
110 ///-----------------------------------------------------------------------------
111 /// Checking -fintegrated-as
112 
113 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
114 // RUN:     -x assembler -fuse-ld=ld %s 2>&1 | \
115 // RUN:    FileCheck -check-prefix=AS %s
116 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
117 // RUN:     -fno-integrated-as -x assembler -fuse-ld=ld %s 2>&1 | \
118 // RUN:    FileCheck -check-prefix=NAS %s
119 
120 // AS: "-cc1as"
121 // AS: nld{{.*}}
122 
123 // NAS: nas{{.*}}
124 // NAS: nld{{.*}}
125 
126 ///-----------------------------------------------------------------------------
127 /// Checking default behavior:
128 ///  - dynamic linker
129 ///  - library paths
130 ///  - nld VE specific options
131 ///  - sjlj exception
132 
133 // RUN: %clangxx -### --target=ve-unknown-linux-gnu \
134 // RUN:     --sysroot %S/Inputs/basic_ve_tree \
135 // RUN:     -fuse-ld=ld \
136 // RUN:     -resource-dir=%S/Inputs/basic_ve_tree/resource_dir \
137 // RUN:     --unwindlib=none \
138 // RUN:     --stdlib=libc++ %s 2>&1 | FileCheck -check-prefix=DEF %s
139 
140 // DEF:      "-cc1"
141 // DEF-SAME: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
142 // DEF-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
143 // DEF-SAME: "-exception-model=sjlj"
144 // DEF:      nld"
145 // DEF-SAME: "--sysroot=[[SYSROOT]]"
146 // DEF-SAME: "-dynamic-linker" "/opt/nec/ve/lib/ld-linux-ve.so.1"
147 // DEF-SAME: "[[SYSROOT]]/opt/nec/ve/lib/crt1.o"
148 // DEF-SAME: "[[SYSROOT]]/opt/nec/ve/lib/crti.o"
149 // DEF-SAME: "-z" "max-page-size=0x4000000"
150 // DEF-SAME: "[[RESOURCE_DIR]]/lib/ve-unknown-linux-gnu/clang_rt.crtbegin.o"
151 // DEF-SAME: "-lc++" "-lc++abi" "-lunwind" "-lpthread" "-ldl"
152 // DEF-SAME: "[[RESOURCE_DIR]]/lib/ve-unknown-linux-gnu/libclang_rt.builtins.a" "-lc"
153 // DEF-SAME: "[[RESOURCE_DIR]]/lib/ve-unknown-linux-gnu/libclang_rt.builtins.a"
154 // DEF-SAME: "[[RESOURCE_DIR]]/lib/ve-unknown-linux-gnu/clang_rt.crtend.o"
155 // DEF-SAME: "[[SYSROOT]]/opt/nec/ve/lib/crtn.o"
156