xref: /aosp_15_r20/external/clang/test/Driver/android-ndk-standalone.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // Test header and library paths when Clang is used with Android standalone
2*67e74705SXin Li // toolchain.
3*67e74705SXin Li //
4*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
5*67e74705SXin Li // RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
6*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
7*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
8*67e74705SXin Li // RUN:   | FileCheck  %s
9*67e74705SXin Li // CHECK: {{.*}}clang{{.*}}" "-cc1"
10*67e74705SXin Li // CHECK: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
11*67e74705SXin Li // CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9"
12*67e74705SXin Li // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb"
13*67e74705SXin Li // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a"
14*67e74705SXin Li // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb"
15*67e74705SXin Li // CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi"
16*67e74705SXin Li // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb"
17*67e74705SXin Li // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a"
18*67e74705SXin Li // CHECK-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb"
19*67e74705SXin Li // CHECK: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
20*67e74705SXin Li // CHECK: "-internal-isystem" "{{.*}}/sysroot/usr/local/include"
21*67e74705SXin Li // CHECK: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
22*67e74705SXin Li // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/include"
23*67e74705SXin Li // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
24*67e74705SXin Li // CHECK: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
25*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb"
26*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a"
27*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb"
28*67e74705SXin Li // CHECK: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9"
29*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb"
30*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a"
31*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb"
32*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
33*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
34*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
35*67e74705SXin Li // CHECK: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/arm-linux-androideabi/lib"
36*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
37*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
38*67e74705SXin Li // CHECK-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
39*67e74705SXin Li // CHECK: "-L{{.*}}/sysroot/usr/lib"
40*67e74705SXin Li //
41*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
42*67e74705SXin Li // RUN:     -target armv7a-none-linux-androideabi -stdlib=libstdc++ \
43*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
44*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
45*67e74705SXin Li // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7 %s
46*67e74705SXin Li // CHECK-ARMV7: {{.*}}clang{{.*}}" "-cc1"
47*67e74705SXin Li // CHECK-ARMV7: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
48*67e74705SXin Li // CHECK-ARMV7: "-internal-isystem" "{{.*}}/include/c++/4.9"
49*67e74705SXin Li // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb"
50*67e74705SXin Li // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb"
51*67e74705SXin Li // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi"
52*67e74705SXin Li // CHECK-ARMV7: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a"
53*67e74705SXin Li // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb"
54*67e74705SXin Li // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb"
55*67e74705SXin Li // CHECK-ARMV7-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi"
56*67e74705SXin Li // CHECK-ARMV7: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
57*67e74705SXin Li // CHECK-ARMV7: "-internal-isystem" "{{.*}}/sysroot/usr/local/include"
58*67e74705SXin Li // CHECK-ARMV7: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
59*67e74705SXin Li // CHECK-ARMV7: "-internal-externc-isystem" "{{.*}}/sysroot/include"
60*67e74705SXin Li // CHECK-ARMV7: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
61*67e74705SXin Li // CHECK-ARMV7: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
62*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb"
63*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb"
64*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9"
65*67e74705SXin Li // CHECK-ARMV7: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a"
66*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb"
67*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb"
68*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9"
69*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
70*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
71*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
72*67e74705SXin Li // CHECK-ARMV7: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
73*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
74*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
75*67e74705SXin Li // CHECK-ARMV7-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
76*67e74705SXin Li // CHECK-ARMV7: "-L{{.*}}/sysroot/usr/lib"
77*67e74705SXin Li //
78*67e74705SXin Li // Other flags that can trigger armv7 mode.
79*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
80*67e74705SXin Li // RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
81*67e74705SXin Li // RUN:     -march=armv7 \
82*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
83*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
84*67e74705SXin Li // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7 %s
85*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
86*67e74705SXin Li // RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
87*67e74705SXin Li // RUN:     -march=armv7a \
88*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
89*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
90*67e74705SXin Li // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7 %s
91*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
92*67e74705SXin Li // RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
93*67e74705SXin Li // RUN:     -march=armv7-a \
94*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
95*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
96*67e74705SXin Li // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7 %s
97*67e74705SXin Li //
98*67e74705SXin Li // ARM thumb mode.
99*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
100*67e74705SXin Li // RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
101*67e74705SXin Li // RUN:     -mthumb \
102*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
103*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
104*67e74705SXin Li // RUN:   | FileCheck  --check-prefix=CHECK-THUMB %s
105*67e74705SXin Li // CHECK-THUMB: {{.*}}clang{{.*}}" "-cc1"
106*67e74705SXin Li // CHECK-THUMB: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
107*67e74705SXin Li // CHECK-THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9"
108*67e74705SXin Li // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7/thumb"
109*67e74705SXin Li // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7"
110*67e74705SXin Li // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi"
111*67e74705SXin Li // CHECK-THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb"
112*67e74705SXin Li // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7/thumb"
113*67e74705SXin Li // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7"
114*67e74705SXin Li // CHECK-THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi"
115*67e74705SXin Li // CHECK-THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
116*67e74705SXin Li // CHECK-THUMB: "-internal-isystem" "{{.*}}/sysroot/usr/local/include"
117*67e74705SXin Li // CHECK-THUMB: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
118*67e74705SXin Li // CHECK-THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/include"
119*67e74705SXin Li // CHECK-THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
120*67e74705SXin Li // CHECK-THUMB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
121*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb"
122*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a"
123*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9"
124*67e74705SXin Li // CHECK-THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb"
125*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb"
126*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a"
127*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9"
128*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7"
129*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7/thumb"
130*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
131*67e74705SXin Li // CHECK-THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
132*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7"
133*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7/thumb"
134*67e74705SXin Li // CHECK-THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
135*67e74705SXin Li // CHECK-THUMB: "-L{{.*}}/sysroot/usr/lib"
136*67e74705SXin Li //
137*67e74705SXin Li // ARM V7 thumb mode.
138*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
139*67e74705SXin Li // RUN:     -target arm-linux-androideabi -stdlib=libstdc++ \
140*67e74705SXin Li // RUN:     -march=armv7-a -mthumb \
141*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
142*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
143*67e74705SXin Li // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7THUMB %s
144*67e74705SXin Li // CHECK-ARMV7THUMB: {{.*}}clang{{.*}}" "-cc1"
145*67e74705SXin Li // CHECK-ARMV7THUMB: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
146*67e74705SXin Li // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9"
147*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a"
148*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb"
149*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi"
150*67e74705SXin Li // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a/thumb"
151*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/armv7-a"
152*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi/thumb"
153*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-internal-isystem" "{{.*}}/include/c++/4.9/arm-linux-androideabi"
154*67e74705SXin Li // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
155*67e74705SXin Li // CHECK-ARMV7THUMB: "-internal-isystem" "{{.*}}/sysroot/usr/local/include"
156*67e74705SXin Li // CHECK-ARMV7THUMB: "-internal-isystem" "[[RESOURCE_DIR]]{{(/|\\\\)}}include"
157*67e74705SXin Li // CHECK-ARMV7THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/include"
158*67e74705SXin Li // CHECK-ARMV7THUMB: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
159*67e74705SXin Li // CHECK-ARMV7THUMB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
160*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb"
161*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a"
162*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9"
163*67e74705SXin Li // CHECK-ARMV7THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a/thumb"
164*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/thumb"
165*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/armv7-a"
166*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9"
167*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
168*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
169*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
170*67e74705SXin Li // CHECK-ARMV7THUMB: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a/thumb"
171*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/thumb"
172*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib/armv7-a"
173*67e74705SXin Li // CHECK-ARMV7THUMB-NOT: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.9/../{{[^ ]*}}/lib"
174*67e74705SXin Li // CHECK-ARMV7THUMB: "-L{{.*}}/sysroot/usr/lib"
175*67e74705SXin Li //
176*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
177*67e74705SXin Li // RUN:     -target armv7a-none-linux-androideabi -stdlib=libstdc++ \
178*67e74705SXin Li // RUN:     -mthumb \
179*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
180*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
181*67e74705SXin Li // RUN:   | FileCheck  --check-prefix=CHECK-ARMV7THUMB %s
182*67e74705SXin Li //
183*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
184*67e74705SXin Li // RUN:     -target aarch64-linux-android -stdlib=libstdc++ \
185*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
186*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
187*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-AARCH64 %s
188*67e74705SXin Li // CHECK-AARCH64: {{.*}}clang{{.*}}" "-cc1"
189*67e74705SXin Li // CHECK-AARCH64: "-internal-isystem" "{{.*}}/include/c++/4.9"
190*67e74705SXin Li // CHECK-AARCH64: "-internal-isystem" "{{.*}}/include/c++/4.9/aarch64-linux-android"
191*67e74705SXin Li // CHECK-AARCH64: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
192*67e74705SXin Li // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/include"
193*67e74705SXin Li // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
194*67e74705SXin Li // CHECK-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
195*67e74705SXin Li // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9"
196*67e74705SXin Li // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/lib"
197*67e74705SXin Li // CHECK-AARCH64: "-L{{.*}}/sysroot/usr/lib"
198*67e74705SXin Li //
199*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
200*67e74705SXin Li // RUN:     -target arm64-linux-android -stdlib=libstdc++ \
201*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
202*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
203*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-ARM64 %s
204*67e74705SXin Li // CHECK-ARM64: {{.*}}clang{{.*}}" "-cc1"
205*67e74705SXin Li // CHECK-ARM64: "-internal-isystem" "{{.*}}/include/c++/4.9"
206*67e74705SXin Li // CHECK-ARM64: "-internal-isystem" "{{.*}}/include/c++/4.9/aarch64-linux-android"
207*67e74705SXin Li // CHECK-ARM64: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
208*67e74705SXin Li // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/include"
209*67e74705SXin Li // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
210*67e74705SXin Li // CHECK-ARM64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
211*67e74705SXin Li // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9"
212*67e74705SXin Li // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/lib"
213*67e74705SXin Li // CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib"
214*67e74705SXin Li //
215*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
216*67e74705SXin Li // RUN:     -target mipsel-linux-android \
217*67e74705SXin Li // RUN:     -mips32 -stdlib=libstdc++ \
218*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
219*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
220*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPS %s
221*67e74705SXin Li // CHECK-MIPS: {{.*}}clang{{.*}}" "-cc1"
222*67e74705SXin Li // CHECK-MIPS: "-internal-isystem" "{{.*}}/include/c++/4.9"
223*67e74705SXin Li // CHECK-MIPS: "-internal-isystem" "{{.*}}/include/c++/4.9/mipsel-linux-android"
224*67e74705SXin Li // CHECK-MIPS: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
225*67e74705SXin Li // CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/include"
226*67e74705SXin Li // CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
227*67e74705SXin Li // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
228*67e74705SXin Li // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9"
229*67e74705SXin Li // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/../../../../mipsel-linux-android/lib"
230*67e74705SXin Li // CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib"
231*67e74705SXin Li //
232*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
233*67e74705SXin Li // RUN:     -target mipsel-linux-android \
234*67e74705SXin Li // RUN:     -march=mips32 -mips32r2 -stdlib=libstdc++ \
235*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
236*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
237*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPSR2 %s
238*67e74705SXin Li // CHECK-MIPSR2: {{.*}}clang{{.*}}" "-cc1"
239*67e74705SXin Li // CHECK-MIPSR2: "-internal-isystem" "{{.*}}/include/c++/4.9"
240*67e74705SXin Li // CHECK-MIPSR2: "-internal-isystem" "{{.*}}/include/c++/4.9/mipsel-linux-android/mips-r2"
241*67e74705SXin Li // CHECK-MIPSR2: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
242*67e74705SXin Li // CHECK-MIPSR2: "-internal-externc-isystem" "{{.*}}/sysroot/include"
243*67e74705SXin Li // CHECK-MIPSR2: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
244*67e74705SXin Li // CHECK-MIPSR2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
245*67e74705SXin Li // CHECK-MIPSR2: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/mips-r2"
246*67e74705SXin Li // CHECK-MIPSR2: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/../../../../mipsel-linux-android/lib/../libr2"
247*67e74705SXin Li // CHECK-MIPSR2: "-L{{.*}}/sysroot/usr/lib/../libr2"
248*67e74705SXin Li //
249*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
250*67e74705SXin Li // RUN:     -target mipsel-linux-android \
251*67e74705SXin Li // RUN:     -mips32r6 -stdlib=libstdc++ \
252*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
253*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
254*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPSR6 %s
255*67e74705SXin Li // CHECK-MIPSR6: {{.*}}clang{{.*}}" "-cc1"
256*67e74705SXin Li // CHECK-MIPSR6: "-internal-isystem" "{{.*}}/include/c++/4.9"
257*67e74705SXin Li // CHECK-MIPSR6: "-internal-isystem" "{{.*}}/include/c++/4.9/mipsel-linux-android/mips-r6"
258*67e74705SXin Li // CHECK-MIPSR6: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
259*67e74705SXin Li // CHECK-MIPSR6: "-internal-externc-isystem" "{{.*}}/sysroot/include"
260*67e74705SXin Li // CHECK-MIPSR6: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
261*67e74705SXin Li // CHECK-MIPSR6: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
262*67e74705SXin Li // CHECK-MIPSR6: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/mips-r6"
263*67e74705SXin Li // CHECK-MIPSR6: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.9/../../../../mipsel-linux-android/lib/../libr6"
264*67e74705SXin Li // CHECK-MIPSR6: "-L{{.*}}/sysroot/usr/lib/../libr6"
265*67e74705SXin Li //
266*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
267*67e74705SXin Li // RUN:     -target mips64el-linux-android \
268*67e74705SXin Li // RUN:     -march=mips32 -mips32r2 -stdlib=libstdc++ \
269*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
270*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
271*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPS64-R2 %s
272*67e74705SXin Li // CHECK-MIPS64-R2: {{.*}}clang{{.*}}" "-cc1"
273*67e74705SXin Li // CHECK-MIPS64-R2: "-internal-isystem" "{{.*}}/include/c++/4.9"
274*67e74705SXin Li // CHECK-MIPS64-R2: "-internal-isystem" "{{.*}}/include/mips64el-linux-android/c++/4.9/mips-r2"
275*67e74705SXin Li // CHECK-MIPS64-R2: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
276*67e74705SXin Li // CHECK-MIPS64-R2: "-internal-externc-isystem" "{{.*}}/sysroot/include"
277*67e74705SXin Li // CHECK-MIPS64-R2: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
278*67e74705SXin Li // CHECK-MIPS64-R2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
279*67e74705SXin Li // CHECK-MIPS64-R2: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/32/mips-r2"
280*67e74705SXin Li // CHECK-MIPS64-R2: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/../../../../mips64el-linux-android/lib/../libr2"
281*67e74705SXin Li // CHECK-MIPS64-R2: "-L{{.*}}/sysroot/usr/lib/../libr2"
282*67e74705SXin Li //
283*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
284*67e74705SXin Li // RUN:     -target mips64el-linux-android \
285*67e74705SXin Li // RUN:     -march=mips32 -mips32r6 -stdlib=libstdc++ \
286*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
287*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
288*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPS64-R6 %s
289*67e74705SXin Li // CHECK-MIPS64-R6: {{.*}}clang{{.*}}" "-cc1"
290*67e74705SXin Li // CHECK-MIPS64-R6: "-internal-isystem" "{{.*}}/include/c++/4.9"
291*67e74705SXin Li // CHECK-MIPS64-R6: "-internal-isystem" "{{.*}}/include/mips64el-linux-android/c++/4.9/mips-r6"
292*67e74705SXin Li // CHECK-MIPS64-R6: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
293*67e74705SXin Li // CHECK-MIPS64-R6: "-internal-externc-isystem" "{{.*}}/sysroot/include"
294*67e74705SXin Li // CHECK-MIPS64-R6: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
295*67e74705SXin Li // CHECK-MIPS64-R6: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
296*67e74705SXin Li // CHECK-MIPS64-R6: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/32/mips-r6"
297*67e74705SXin Li // CHECK-MIPS64-R6: "-L{{.*}}/lib/gcc/mips64el-linux-android/4.9/../../../../mips64el-linux-android/lib/../libr6"
298*67e74705SXin Li // CHECK-MIPS64-R6: "-L{{.*}}/sysroot/usr/lib/../libr6"
299*67e74705SXin Li //
300*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
301*67e74705SXin Li // RUN:     -target i686-linux-android \
302*67e74705SXin Li // RUN:     -stdlib=libstdc++ \
303*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_ndk_tree \
304*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_ndk_tree/sysroot \
305*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-I686 %s
306*67e74705SXin Li // CHECK-I686: {{.*}}clang{{.*}}" "-cc1"
307*67e74705SXin Li // CHECK-I686: "-internal-isystem" "{{.*}}/include/c++/4.9"
308*67e74705SXin Li // CHECK-I686: "-internal-isystem" "{{.*}}/include/c++/4.9/i686-linux-android"
309*67e74705SXin Li // CHECK-I686: "-internal-isystem" "{{.*}}/include/c++/4.9/backward"
310*67e74705SXin Li // CHECK-I686: "-internal-externc-isystem" "{{.*}}/sysroot/include"
311*67e74705SXin Li // CHECK-I686: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
312*67e74705SXin Li // CHECK-I686: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
313*67e74705SXin Li // CHECK-I686: "-L{{.*}}/lib/gcc/i686-linux-android/4.9"
314*67e74705SXin Li // CHECK-I686: "-L{{.*}}/lib/gcc/i686-linux-android/4.9/../../../../i686-linux-android/lib"
315*67e74705SXin Li // CHECK-I686: "-L{{.*}}/sysroot/usr/lib"
316