xref: /aosp_15_r20/external/clang/test/Driver/android-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_tree \
7*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
8*67e74705SXin Li // RUN:   | FileCheck  %s
9*67e74705SXin Li // CHECK: {{.*}}clang{{.*}}" "-cc1"
10*67e74705SXin Li // CHECK: "-internal-isystem" "{{.*}}/arm-linux-androideabi/include/c++/4.4.3"
11*67e74705SXin Li // CHECK: "-internal-isystem" "{{.*}}/arm-linux-androideabi/include/c++/4.4.3/arm-linux-androideabi"
12*67e74705SXin Li // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/include"
13*67e74705SXin Li // CHECK: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
14*67e74705SXin Li // CHECK: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
15*67e74705SXin Li // CHECK: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.4.3"
16*67e74705SXin Li // CHECK: "-L{{.*}}/lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib"
17*67e74705SXin Li // CHECK: "-L{{.*}}/sysroot/usr/lib"
18*67e74705SXin Li //
19*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
20*67e74705SXin Li // RUN:     -target aarch64-linux-android -stdlib=libstdc++ \
21*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_tree \
22*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
23*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-AARCH64 %s
24*67e74705SXin Li // CHECK-AARCH64: {{.*}}clang{{.*}}" "-cc1"
25*67e74705SXin Li // CHECK-AARCH64: "-internal-isystem" "{{.*}}/aarch64-linux-android/include/c++/4.8"
26*67e74705SXin Li // CHECK-AARCH64: "-internal-isystem" "{{.*}}/aarch64-linux-android/include/c++/4.8/aarch64-linux-android"
27*67e74705SXin Li // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/include"
28*67e74705SXin Li // CHECK-AARCH64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
29*67e74705SXin Li // CHECK-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
30*67e74705SXin Li // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.8"
31*67e74705SXin Li // CHECK-AARCH64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.8/../../../../aarch64-linux-android/lib"
32*67e74705SXin Li // CHECK-AARCH64: "-L{{.*}}/sysroot/usr/lib"
33*67e74705SXin Li //
34*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
35*67e74705SXin Li // RUN:     -target arm64-linux-android -stdlib=libstdc++ \
36*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_tree \
37*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
38*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-ARM64 %s
39*67e74705SXin Li // CHECK-ARM64: {{.*}}clang{{.*}}" "-cc1"
40*67e74705SXin Li // CHECK-ARM64: "-internal-isystem" "{{.*}}/aarch64-linux-android/include/c++/4.8"
41*67e74705SXin Li // CHECK-ARM64: "-internal-isystem" "{{.*}}/aarch64-linux-android/include/c++/4.8/aarch64-linux-android"
42*67e74705SXin Li // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/include"
43*67e74705SXin Li // CHECK-ARM64: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
44*67e74705SXin Li // CHECK-ARM64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
45*67e74705SXin Li // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.8"
46*67e74705SXin Li // CHECK-ARM64: "-L{{.*}}/lib/gcc/aarch64-linux-android/4.8/../../../../aarch64-linux-android/lib"
47*67e74705SXin Li // CHECK-ARM64: "-L{{.*}}/sysroot/usr/lib"
48*67e74705SXin Li //
49*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
50*67e74705SXin Li // RUN:     -target mipsel-linux-android \
51*67e74705SXin Li // RUN:     -mips32 -stdlib=libstdc++ \
52*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_tree \
53*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
54*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPS %s
55*67e74705SXin Li // CHECK-MIPS: {{.*}}clang{{.*}}" "-cc1"
56*67e74705SXin Li // CHECK-MIPS: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3"
57*67e74705SXin Li // CHECK-MIPS: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3/mipsel-linux-android"
58*67e74705SXin Li // CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/include"
59*67e74705SXin Li // CHECK-MIPS: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
60*67e74705SXin Li // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
61*67e74705SXin Li // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3"
62*67e74705SXin Li // CHECK-MIPS: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/../../../../mipsel-linux-android/lib"
63*67e74705SXin Li // CHECK-MIPS: "-L{{.*}}/sysroot/usr/lib"
64*67e74705SXin Li //
65*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
66*67e74705SXin Li // RUN:     -target mipsel-linux-android \
67*67e74705SXin Li // RUN:     -march=mips32 -mips32r2 -stdlib=libstdc++ \
68*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_tree \
69*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
70*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPSR2 %s
71*67e74705SXin Li // CHECK-MIPSR2: {{.*}}clang{{.*}}" "-cc1"
72*67e74705SXin Li // CHECK-MIPSR2: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3"
73*67e74705SXin Li // CHECK-MIPSR2: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3/mipsel-linux-android"
74*67e74705SXin Li // CHECK-MIPSR2: "-internal-externc-isystem" "{{.*}}/sysroot/include"
75*67e74705SXin Li // CHECK-MIPSR2: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
76*67e74705SXin Li // CHECK-MIPSR2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
77*67e74705SXin Li // CHECK-MIPSR2: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/mips-r2"
78*67e74705SXin Li // CHECK-MIPSR2: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/../../../../mipsel-linux-android/lib"
79*67e74705SXin Li // CHECK-MIPSR2: "-L{{.*}}/sysroot/usr/lib"
80*67e74705SXin Li //
81*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
82*67e74705SXin Li // RUN:     -target mipsel-linux-android \
83*67e74705SXin Li // RUN:     -mips32 -march=mips32r2 -stdlib=libstdc++ \
84*67e74705SXin Li // RUN:     -B%S/Inputs/basic_android_tree \
85*67e74705SXin Li // RUN:     --sysroot=%S/Inputs/basic_android_tree/sysroot \
86*67e74705SXin Li // RUN:   | FileCheck --check-prefix=CHECK-MIPSR2-A %s
87*67e74705SXin Li // CHECK-MIPSR2-A: {{.*}}clang{{.*}}" "-cc1"
88*67e74705SXin Li // CHECK-MIPSR2-A: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3"
89*67e74705SXin Li // CHECK-MIPSR2-A: "-internal-isystem" "{{.*}}/mipsel-linux-android/include/c++/4.4.3/mipsel-linux-android"
90*67e74705SXin Li // CHECK-MIPSR2-A: "-internal-externc-isystem" "{{.*}}/sysroot/include"
91*67e74705SXin Li // CHECK-MIPSR2-A: "-internal-externc-isystem" "{{.*}}/sysroot/usr/include"
92*67e74705SXin Li // CHECK-MIPSR2-A: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
93*67e74705SXin Li // CHECK-MIPSR2-A: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/mips-r2"
94*67e74705SXin Li // CHECK-MIPSR2-A: "-L{{.*}}/lib/gcc/mipsel-linux-android/4.4.3/../../../../mipsel-linux-android/lib"
95*67e74705SXin Li // CHECK-MIPSR2-A: "-L{{.*}}/sysroot/usr/lib"
96