1*67e74705SXin Li // General tests that ld invocations on Linux targets sane. Note that we use 2*67e74705SXin Li // sysroot to make these tests independent of the host system. 3*67e74705SXin Li // 4*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 5*67e74705SXin Li // RUN: --target=i386-unknown-linux \ 6*67e74705SXin Li // RUN: --gcc-toolchain="" \ 7*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 8*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-32 %s 9*67e74705SXin Li // CHECK-LD-32-NOT: warning: 10*67e74705SXin Li // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 11*67e74705SXin Li // CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 12*67e74705SXin Li // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 13*67e74705SXin Li // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 14*67e74705SXin Li // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 15*67e74705SXin Li // CHECK-LD-32: "-L[[SYSROOT]]/lib" 16*67e74705SXin Li // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib" 17*67e74705SXin Li // 18*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 19*67e74705SXin Li // RUN: --target=x86_64-unknown-linux \ 20*67e74705SXin Li // RUN: --gcc-toolchain="" \ 21*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 22*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s 23*67e74705SXin Li // CHECK-LD-64-NOT: warning: 24*67e74705SXin Li // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 25*67e74705SXin Li // CHECK-LD-64: "--eh-frame-hdr" 26*67e74705SXin Li // CHECK-LD-64: "-m" "elf_x86_64" 27*67e74705SXin Li // CHECK-LD-64: "-dynamic-linker" 28*67e74705SXin Li // CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 29*67e74705SXin Li // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 30*67e74705SXin Li // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 31*67e74705SXin Li // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 32*67e74705SXin Li // CHECK-LD-64: "-L[[SYSROOT]]/lib" 33*67e74705SXin Li // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib" 34*67e74705SXin Li // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 35*67e74705SXin Li // CHECK-LD-64: "-lc" 36*67e74705SXin Li // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 37*67e74705SXin Li // 38*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 39*67e74705SXin Li // RUN: --target=x86_64-unknown-linux-gnux32 \ 40*67e74705SXin Li // RUN: --gcc-toolchain="" \ 41*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 42*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s 43*67e74705SXin Li // CHECK-LD-X32-NOT: warning: 44*67e74705SXin Li // CHECK-LD-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 45*67e74705SXin Li // CHECK-LD-X32: "--eh-frame-hdr" 46*67e74705SXin Li // CHECK-LD-X32: "-m" "elf32_x86_64" 47*67e74705SXin Li // CHECK-LD-X32: "-dynamic-linker" 48*67e74705SXin Li // CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 49*67e74705SXin Li // CHECK-LD-X32: "-lc" 50*67e74705SXin Li // CHECK-LD-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 51*67e74705SXin Li // 52*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 53*67e74705SXin Li // RUN: --target=x86_64-unknown-linux \ 54*67e74705SXin Li // RUN: --gcc-toolchain="" \ 55*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 56*67e74705SXin Li // RUN: --rtlib=compiler-rt \ 57*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-RT %s 58*67e74705SXin Li // CHECK-LD-RT-NOT: warning: 59*67e74705SXin Li // CHECK-LD-RT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 60*67e74705SXin Li // CHECK-LD-RT: "--eh-frame-hdr" 61*67e74705SXin Li // CHECK-LD-RT: "-m" "elf_x86_64" 62*67e74705SXin Li // CHECK-LD-RT: "-dynamic-linker" 63*67e74705SXin Li // CHECK-LD-RT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 64*67e74705SXin Li // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 65*67e74705SXin Li // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 66*67e74705SXin Li // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 67*67e74705SXin Li // CHECK-LD-RT: "-L[[SYSROOT]]/lib" 68*67e74705SXin Li // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib" 69*67e74705SXin Li // CHECK-LD-RT: libclang_rt.builtins-x86_64.a" 70*67e74705SXin Li // CHECK-LD-RT: "-lc" 71*67e74705SXin Li // CHECK-LD-RT: libclang_rt.builtins-x86_64.a" 72*67e74705SXin Li // 73*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 74*67e74705SXin Li // RUN: --target=arm-linux-androideabi \ 75*67e74705SXin Li // RUN: --gcc-toolchain="" \ 76*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 77*67e74705SXin Li // RUN: --rtlib=compiler-rt \ 78*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-RT-ANDROID %s 79*67e74705SXin Li // CHECK-LD-RT-ANDROID-NOT: warning: 80*67e74705SXin Li // CHECK-LD-RT-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 81*67e74705SXin Li // CHECK-LD-RT-ANDROID: "--eh-frame-hdr" 82*67e74705SXin Li // CHECK-LD-RT-ANDROID: "-m" "armelf_linux_eabi" 83*67e74705SXin Li // CHECK-LD-RT-ANDROID: "-dynamic-linker" 84*67e74705SXin Li // CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a" 85*67e74705SXin Li // CHECK-LD-RT-ANDROID: "-lc" 86*67e74705SXin Li // CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a" 87*67e74705SXin Li // 88*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 89*67e74705SXin Li // RUN: --target=x86_64-unknown-linux \ 90*67e74705SXin Li // RUN: --gcc-toolchain="" \ 91*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 92*67e74705SXin Li // RUN: --rtlib=libgcc \ 93*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-GCC %s 94*67e74705SXin Li // CHECK-LD-GCC-NOT: warning: 95*67e74705SXin Li // CHECK-LD-GCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 96*67e74705SXin Li // CHECK-LD-GCC: "--eh-frame-hdr" 97*67e74705SXin Li // CHECK-LD-GCC: "-m" "elf_x86_64" 98*67e74705SXin Li // CHECK-LD-GCC: "-dynamic-linker" 99*67e74705SXin Li // CHECK-LD-GCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 100*67e74705SXin Li // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 101*67e74705SXin Li // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 102*67e74705SXin Li // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 103*67e74705SXin Li // CHECK-LD-GCC: "-L[[SYSROOT]]/lib" 104*67e74705SXin Li // CHECK-LD-GCC: "-L[[SYSROOT]]/usr/lib" 105*67e74705SXin Li // CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 106*67e74705SXin Li // CHECK-LD-GCC: "-lc" 107*67e74705SXin Li // CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 108*67e74705SXin Li // 109*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 110*67e74705SXin Li // RUN: --target=x86_64-unknown-linux \ 111*67e74705SXin Li // RUN: -static-libgcc \ 112*67e74705SXin Li // RUN: --gcc-toolchain="" \ 113*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 114*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s 115*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC-NOT: warning: 116*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 117*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr" 118*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64" 119*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker" 120*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 121*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 122*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 123*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 124*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib" 125*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib" 126*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 127*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-lc" 128*67e74705SXin Li // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 129*67e74705SXin Li // 130*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 131*67e74705SXin Li // RUN: --target=x86_64-unknown-linux \ 132*67e74705SXin Li // RUN: -static \ 133*67e74705SXin Li // RUN: --gcc-toolchain="" \ 134*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 135*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 136*67e74705SXin Li // CHECK-LD-64-STATIC-NOT: warning: 137*67e74705SXin Li // CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 138*67e74705SXin Li // CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr" 139*67e74705SXin Li // CHECK-LD-64-STATIC: "-m" "elf_x86_64" 140*67e74705SXin Li // CHECK-LD-64-STATIC-NOT: "-dynamic-linker" 141*67e74705SXin Li // CHECK-LD-64-STATIC: "-static" 142*67e74705SXin Li // CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o" 143*67e74705SXin Li // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 144*67e74705SXin Li // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 145*67e74705SXin Li // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 146*67e74705SXin Li // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib" 147*67e74705SXin Li // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib" 148*67e74705SXin Li // CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 149*67e74705SXin Li // 150*67e74705SXin Li // Check that flags can be combined. The -static dominates. 151*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 152*67e74705SXin Li // RUN: --target=x86_64-unknown-linux \ 153*67e74705SXin Li // RUN: -static-libgcc -static \ 154*67e74705SXin Li // RUN: --gcc-toolchain="" \ 155*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 156*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 157*67e74705SXin Li // 158*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 159*67e74705SXin Li // RUN: --target=i386-unknown-linux -m32 \ 160*67e74705SXin Li // RUN: --gcc-toolchain="" \ 161*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 162*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s 163*67e74705SXin Li // CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 164*67e74705SXin Li // CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 165*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 166*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32" 167*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32" 168*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32" 169*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 170*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 171*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 172*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/lib" 173*67e74705SXin Li // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib" 174*67e74705SXin Li // 175*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 176*67e74705SXin Li // RUN: --target=i386-unknown-linux -m64 \ 177*67e74705SXin Li // RUN: --gcc-toolchain="" \ 178*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 179*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s 180*67e74705SXin Li // CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 181*67e74705SXin Li // CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o" 182*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64" 183*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64" 184*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64" 185*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64" 186*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 187*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 188*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 189*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 190*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/lib" 191*67e74705SXin Li // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib" 192*67e74705SXin Li // 193*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 194*67e74705SXin Li // RUN: --target=x86_64-unknown-linux -m64 \ 195*67e74705SXin Li // RUN: --gcc-toolchain="" \ 196*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 197*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s 198*67e74705SXin Li // CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 199*67e74705SXin Li // CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 200*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 201*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64" 202*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64" 203*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64" 204*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 205*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 206*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 207*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/lib" 208*67e74705SXin Li // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib" 209*67e74705SXin Li // 210*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 211*67e74705SXin Li // RUN: --target=x86_64-unknown-linux -m32 \ 212*67e74705SXin Li // RUN: --gcc-toolchain="" \ 213*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 214*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s 215*67e74705SXin Li // CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 216*67e74705SXin Li // CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 217*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 218*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32" 219*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32" 220*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32" 221*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 222*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 223*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 224*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 225*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/lib" 226*67e74705SXin Li // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib" 227*67e74705SXin Li // 228*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 229*67e74705SXin Li // RUN: --target=x86_64-unknown-linux-gnux32 \ 230*67e74705SXin Li // RUN: --gcc-toolchain="" \ 231*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 232*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-X32 %s 233*67e74705SXin Li // CHECK-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 234*67e74705SXin Li // CHECK-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o" 235*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32" 236*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32" 237*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32" 238*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/lib/../libx32" 239*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 240*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 241*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 242*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 243*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/lib" 244*67e74705SXin Li // CHECK-X32: "-L[[SYSROOT]]/usr/lib" 245*67e74705SXin Li // 246*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 247*67e74705SXin Li // RUN: --target=x86_64-unknown-linux -mx32 \ 248*67e74705SXin Li // RUN: --gcc-toolchain="" \ 249*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 250*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-64-TO-X32 %s 251*67e74705SXin Li // CHECK-64-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 252*67e74705SXin Li // CHECK-64-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o" 253*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32" 254*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32" 255*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32" 256*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/lib/../libx32" 257*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 258*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 259*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 260*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 261*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/lib" 262*67e74705SXin Li // CHECK-64-TO-X32: "-L[[SYSROOT]]/usr/lib" 263*67e74705SXin Li // 264*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 265*67e74705SXin Li // RUN: --target=i386-unknown-linux -mx32 \ 266*67e74705SXin Li // RUN: --gcc-toolchain="" \ 267*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 268*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-32-TO-X32 %s 269*67e74705SXin Li // CHECK-32-TO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 270*67e74705SXin Li // CHECK-32-TO-X32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32{{/|\\\\}}crtbegin.o" 271*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32" 272*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../libx32" 273*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../libx32" 274*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/lib/../libx32" 275*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 276*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 277*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 278*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 279*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/lib" 280*67e74705SXin Li // CHECK-32-TO-X32: "-L[[SYSROOT]]/usr/lib" 281*67e74705SXin Li // 282*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 283*67e74705SXin Li // RUN: --target=x86_64-unknown-linux-gnux32 -m64 \ 284*67e74705SXin Li // RUN: --gcc-toolchain="" \ 285*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 286*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-X32-TO-64 %s 287*67e74705SXin Li // CHECK-X32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 288*67e74705SXin Li // CHECK-X32-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 289*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 290*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64" 291*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64" 292*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/lib/../lib64" 293*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 294*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 295*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 296*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/lib" 297*67e74705SXin Li // CHECK-X32-TO-64: "-L[[SYSROOT]]/usr/lib" 298*67e74705SXin Li // 299*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 300*67e74705SXin Li // RUN: --target=x86_64-unknown-linux-gnux32 -m32 \ 301*67e74705SXin Li // RUN: --gcc-toolchain="" \ 302*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 303*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-X32-TO-32 %s 304*67e74705SXin Li // CHECK-X32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 305*67e74705SXin Li // CHECK-X32-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 306*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 307*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32" 308*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32" 309*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/lib/../lib32" 310*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 311*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 312*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 313*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 314*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/lib" 315*67e74705SXin Li // CHECK-X32-TO-32: "-L[[SYSROOT]]/usr/lib" 316*67e74705SXin Li // 317*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 318*67e74705SXin Li // RUN: --target=x86_64-unknown-linux -m32 \ 319*67e74705SXin Li // RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \ 320*67e74705SXin Li // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 321*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s 322*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 323*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 324*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 325*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32" 326*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32" 327*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 328*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib" 329*67e74705SXin Li // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib" 330*67e74705SXin Li // 331*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 332*67e74705SXin Li // RUN: --target=i386-unknown-linux -m32 \ 333*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \ 334*67e74705SXin Li // RUN: --gcc-toolchain="" \ 335*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 336*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s 337*67e74705SXin Li // CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 338*67e74705SXin Li // CHECK-INSTALL-DIR-32: "{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0{{/|\\\\}}crtbegin.o" 339*67e74705SXin Li // CHECK-INSTALL-DIR-32: "-L{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0" 340*67e74705SXin Li // 341*67e74705SXin Li // Check that with 64-bit builds, we don't actually use the install directory 342*67e74705SXin Li // as its version of GCC is lower than our sysrooted version. 343*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 344*67e74705SXin Li // RUN: --target=x86_64-unknown-linux -m64 \ 345*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \ 346*67e74705SXin Li // RUN: --gcc-toolchain="" \ 347*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 348*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s 349*67e74705SXin Li // CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 350*67e74705SXin Li // CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 351*67e74705SXin Li // CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 352*67e74705SXin Li // 353*67e74705SXin Li // Check that we support unusual patch version formats, including missing that 354*67e74705SXin Li // component. 355*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 356*67e74705SXin Li // RUN: --target=i386-unknown-linux -m32 \ 357*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \ 358*67e74705SXin Li // RUN: --gcc-toolchain="" \ 359*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 360*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s 361*67e74705SXin Li // CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 362*67e74705SXin Li // CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o" 363*67e74705SXin Li // CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7" 364*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 365*67e74705SXin Li // RUN: --target=i386-unknown-linux -m32 \ 366*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \ 367*67e74705SXin Li // RUN: --gcc-toolchain="" \ 368*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 369*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s 370*67e74705SXin Li // CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 371*67e74705SXin Li // CHECK-GCC-VERSION2: "{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x{{/|\\\\}}crtbegin.o" 372*67e74705SXin Li // CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x" 373*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 374*67e74705SXin Li // RUN: --target=i386-unknown-linux -m32 \ 375*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \ 376*67e74705SXin Li // RUN: --gcc-toolchain="" \ 377*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 378*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s 379*67e74705SXin Li // CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 380*67e74705SXin Li // CHECK-GCC-VERSION3: "{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5{{/|\\\\}}crtbegin.o" 381*67e74705SXin Li // CHECK-GCC-VERSION3: "-L{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5" 382*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 383*67e74705SXin Li // RUN: --target=i386-unknown-linux -m32 \ 384*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \ 385*67e74705SXin Li // RUN: --gcc-toolchain="" \ 386*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 387*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s 388*67e74705SXin Li // CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 389*67e74705SXin Li // CHECK-GCC-VERSION4: "{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99{{/|\\\\}}crtbegin.o" 390*67e74705SXin Li // CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99" 391*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 392*67e74705SXin Li // RUN: --target=i386-unknown-linux -m32 \ 393*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing5/bin \ 394*67e74705SXin Li // RUN: --gcc-toolchain="" \ 395*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 396*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION5 %s 397*67e74705SXin Li // CHECK-GCC-VERSION5: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 398*67e74705SXin Li // CHECK-GCC-VERSION5: "{{.*}}/Inputs/gcc_version_parsing5/bin/../lib/gcc/i386-unknown-linux/5{{/|\\\\}}crtbegin.o" 399*67e74705SXin Li // CHECK-GCC-VERSION5: "-L{{.*}}/Inputs/gcc_version_parsing5/bin/../lib/gcc/i386-unknown-linux/5" 400*67e74705SXin Li // 401*67e74705SXin Li // Test a simulated installation of libc++ on Linux, both through sysroot and 402*67e74705SXin Li // the installation path of Clang. 403*67e74705SXin Li // RUN: %clangxx -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \ 404*67e74705SXin Li // RUN: -target x86_64-unknown-linux-gnu \ 405*67e74705SXin Li // RUN: -stdlib=libc++ \ 406*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/basic_linux_tree/usr/bin \ 407*67e74705SXin Li // RUN: --gcc-toolchain="" \ 408*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 409*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-SYSROOT %s 410*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 411*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "-isysroot" "[[SYSROOT:[^"]+]]" 412*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1" 413*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 414*67e74705SXin Li // CHECK-BASIC-LIBCXX-SYSROOT: "--sysroot=[[SYSROOT]]" 415*67e74705SXin Li // RUN: %clang -no-canonical-prefixes -x c++ %s -### -o %t.o 2>&1 \ 416*67e74705SXin Li // RUN: -target x86_64-unknown-linux-gnu \ 417*67e74705SXin Li // RUN: -stdlib=libc++ \ 418*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \ 419*67e74705SXin Li // RUN: --gcc-toolchain="" \ 420*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 421*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-INSTALL %s 422*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 423*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "-isysroot" "[[SYSROOT:[^"]+]]" 424*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1" 425*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 426*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "--sysroot=[[SYSROOT]]" 427*67e74705SXin Li // CHECK-BASIC-LIBCXX-INSTALL: "-L[[SYSROOT]]/usr/bin/../lib" 428*67e74705SXin Li // 429*67e74705SXin Li // Test that we can use -stdlib=libc++ in a build system even when it 430*67e74705SXin Li // occasionally links C code instead of C++ code. 431*67e74705SXin Li // RUN: %clang -no-canonical-prefixes -x c %s -### -o %t.o 2>&1 \ 432*67e74705SXin Li // RUN: -target x86_64-unknown-linux-gnu \ 433*67e74705SXin Li // RUN: -stdlib=libc++ \ 434*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/basic_linux_libcxx_tree/usr/bin \ 435*67e74705SXin Li // RUN: --gcc-toolchain="" \ 436*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree \ 437*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-BASIC-LIBCXX-C-LINK %s 438*67e74705SXin Li // CHECK-BASIC-LIBCXX-C-LINK-NOT: warning: 439*67e74705SXin Li // CHECK-BASIC-LIBCXX-C-LINK: "{{[^"]*}}clang{{[^"]*}}" "-cc1" 440*67e74705SXin Li // CHECK-BASIC-LIBCXX-C-LINK: "-isysroot" "[[SYSROOT:[^"]+]]" 441*67e74705SXin Li // CHECK-BASIC-LIBCXX-C-LINK-NOT: "-internal-isystem" "[[SYSROOT]]/usr/bin/../include/c++/v1" 442*67e74705SXin Li // CHECK-BASIC-LIBCXX-C-LINK: "-internal-isystem" "[[SYSROOT]]/usr/local/include" 443*67e74705SXin Li // CHECK-BASIC-LIBCXX-C-LINK: "--sysroot=[[SYSROOT]]" 444*67e74705SXin Li // CHECK-BASIC-LIBCXX-C-LINK: "-L[[SYSROOT]]/usr/bin/../lib" 445*67e74705SXin Li // 446*67e74705SXin Li // Test a very broken version of multiarch that shipped in Ubuntu 11.04. 447*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 448*67e74705SXin Li // RUN: --target=i386-unknown-linux \ 449*67e74705SXin Li // RUN: --gcc-toolchain="" \ 450*67e74705SXin Li // RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \ 451*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s 452*67e74705SXin Li // CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 453*67e74705SXin Li // CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 454*67e74705SXin Li // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5" 455*67e74705SXin Li // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu" 456*67e74705SXin Li // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu" 457*67e74705SXin Li // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.." 458*67e74705SXin Li // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib" 459*67e74705SXin Li // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib" 460*67e74705SXin Li // 461*67e74705SXin Li // Check multi arch support on Ubuntu 12.04 LTS. 462*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 463*67e74705SXin Li // RUN: --target=arm-unknown-linux-gnueabihf \ 464*67e74705SXin Li // RUN: --gcc-toolchain="" \ 465*67e74705SXin Li // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 466*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s 467*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 468*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o" 469*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o" 470*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o" 471*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3" 472*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf" 473*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf" 474*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf" 475*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.." 476*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o" 477*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crtn.o" 478*67e74705SXin Li // 479*67e74705SXin Li // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf. 480*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 481*67e74705SXin Li // RUN: --target=arm-linux-gnueabihf \ 482*67e74705SXin Li // RUN: --gcc-toolchain="" \ 483*67e74705SXin Li // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 484*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s 485*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 486*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "{{(/usr/arm--linux-gnueabihf)?}}/lib/ld-linux-armhf.so.3" 487*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o" 488*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o" 489*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o" 490*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8" 491*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib" 492*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib" 493*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib" 494*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib" 495*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o" 496*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o" 497*67e74705SXin Li // 498*67e74705SXin Li // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi. 499*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 500*67e74705SXin Li // RUN: --target=arm-linux-gnueabi \ 501*67e74705SXin Li // RUN: --gcc-toolchain="" \ 502*67e74705SXin Li // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 503*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s 504*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 505*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "{{(/usr/arm--linux-gnueabi)?}}/lib/ld-linux.so.3" 506*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o" 507*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o" 508*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o" 509*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7" 510*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib" 511*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib" 512*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib" 513*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib" 514*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o" 515*67e74705SXin Li // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o" 516*67e74705SXin Li // 517*67e74705SXin Li // Check Ubuntu 14.04 on powerpc64le. 518*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 519*67e74705SXin Li // RUN: --target=powerpc64le-unknown-linux-gnu \ 520*67e74705SXin Li // RUN: --gcc-toolchain="" \ 521*67e74705SXin Li // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ 522*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-PPC64LE %s 523*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 524*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crt1.o" 525*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crti.o" 526*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtbegin.o" 527*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8" 528*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu" 529*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/lib/powerpc64le-linux-gnu" 530*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu" 531*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../.." 532*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8{{/|\\\\}}crtend.o" 533*67e74705SXin Li // CHECK-UBUNTU-14-04-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.8/../../../powerpc64le-linux-gnu{{/|\\\\}}crtn.o" 534*67e74705SXin Li // 535*67e74705SXin Li // Check Ubuntu 14.04 on x32. 536*67e74705SXin Li // "/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/crtend.o" "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32/crtn.o" 537*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 538*67e74705SXin Li // RUN: --target=x86_64-unknown-linux-gnux32 \ 539*67e74705SXin Li // RUN: --gcc-toolchain="" \ 540*67e74705SXin Li // RUN: --sysroot=%S/Inputs/ubuntu_14.04_multiarch_tree \ 541*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-14-04-X32 %s 542*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 543*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crt1.o" 544*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crti.o" 545*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtbegin.o" 546*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/x32" 547*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32" 548*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/lib/../libx32" 549*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/../libx32" 550*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu/../../libx32" 551*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8" 552*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.." 553*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/x32{{/|\\\\}}crtend.o" 554*67e74705SXin Li // CHECK-UBUNTU-14-04-X32: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../libx32{{/|\\\\}}crtn.o" 555*67e74705SXin Li // 556*67e74705SXin Li // Check fedora 18 on arm. 557*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 558*67e74705SXin Li // RUN: --target=armv7-unknown-linux-gnueabihf \ 559*67e74705SXin Li // RUN: --gcc-toolchain="" \ 560*67e74705SXin Li // RUN: --sysroot=%S/Inputs/fedora_18_tree \ 561*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s 562*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 563*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o" 564*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crti.o" 565*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o" 566*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2" 567*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib" 568*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o" 569*67e74705SXin Li // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o" 570*67e74705SXin Li // 571*67e74705SXin Li // Check Fedora 21 on AArch64. 572*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 573*67e74705SXin Li // RUN: --target=arm64-unknown-linux-gnu \ 574*67e74705SXin Li // RUN: --gcc-toolchain="" \ 575*67e74705SXin Li // RUN: --sysroot=%S/Inputs/fedora_21_tree \ 576*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s 577*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 578*67e74705SXin Li // RUN: --target=aarch64-unknown-linux-gnu \ 579*67e74705SXin Li // RUN: --gcc-toolchain="" \ 580*67e74705SXin Li // RUN: --sysroot=%S/Inputs/fedora_21_tree \ 581*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-FEDORA-21-AARCH64 %s 582*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 583*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crt1.o" 584*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crti.o" 585*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtbegin.o" 586*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0" 587*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "-L[[SYSROOT]]/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64" 588*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0{{/|\\\\}}crtend.o" 589*67e74705SXin Li // CHECK-FEDORA-21-AARCH64: "{{.*}}/usr/lib/gcc/aarch64-redhat-linux/4.9.0/../../../../lib64{{/|\\\\}}crtn.o" 590*67e74705SXin Li // 591*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 592*67e74705SXin Li // RUN: --target=arm-unknown-linux-gnueabi \ 593*67e74705SXin Li // RUN: --gcc-toolchain="" \ 594*67e74705SXin Li // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 595*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s 596*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 597*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o" 598*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o" 599*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o" 600*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1" 601*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi" 602*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi" 603*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi" 604*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.." 605*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o" 606*67e74705SXin Li // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crtn.o" 607*67e74705SXin Li // 608*67e74705SXin Li // Test the setup that shipped in SUSE 10.3 on ppc64. 609*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 610*67e74705SXin Li // RUN: --target=powerpc64-suse-linux \ 611*67e74705SXin Li // RUN: --gcc-toolchain="" \ 612*67e74705SXin Li // RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \ 613*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s 614*67e74705SXin Li // CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 615*67e74705SXin Li // CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o" 616*67e74705SXin Li // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64" 617*67e74705SXin Li // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64" 618*67e74705SXin Li // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64" 619*67e74705SXin Li // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64" 620*67e74705SXin Li // 621*67e74705SXin Li // Check dynamic-linker for different archs 622*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 623*67e74705SXin Li // RUN: --target=arm-linux-gnueabi \ 624*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ARM %s 625*67e74705SXin Li // CHECK-ARM: "{{.*}}ld{{(.exe)?}}" 626*67e74705SXin Li // CHECK-ARM: "-m" "armelf_linux_eabi" 627*67e74705SXin Li // CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3" 628*67e74705SXin Li // 629*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 630*67e74705SXin Li // RUN: --target=arm-linux-gnueabi -mfloat-abi=hard \ 631*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ARM-ABIHF %s 632*67e74705SXin Li // CHECK-ARM-ABIHF: "{{.*}}ld{{(.exe)?}}" 633*67e74705SXin Li // CHECK-ARM-ABIHF: "-m" "armelf_linux_eabi" 634*67e74705SXin Li // CHECK-ARM-ABIHF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3" 635*67e74705SXin Li // 636*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 637*67e74705SXin Li // RUN: --target=arm-linux-gnueabihf \ 638*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s 639*67e74705SXin Li // CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}" 640*67e74705SXin Li // CHECK-ARM-HF: "-m" "armelf_linux_eabi" 641*67e74705SXin Li // CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3" 642*67e74705SXin Li // 643*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 644*67e74705SXin Li // RUN: --target=powerpc64-linux-gnu \ 645*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PPC64 %s 646*67e74705SXin Li // CHECK-PPC64: "{{.*}}ld{{(.exe)?}}" 647*67e74705SXin Li // CHECK-PPC64: "-m" "elf64ppc" 648*67e74705SXin Li // CHECK-PPC64: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1" 649*67e74705SXin Li // 650*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 651*67e74705SXin Li // RUN: --target=powerpc64-linux-gnu -mabi=elfv1 \ 652*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s 653*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 654*67e74705SXin Li // RUN: --target=powerpc64-linux-gnu -mabi=elfv1-qpx \ 655*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv1 %s 656*67e74705SXin Li // CHECK-PPC64-ELFv1: "{{.*}}ld{{(.exe)?}}" 657*67e74705SXin Li // CHECK-PPC64-ELFv1: "-m" "elf64ppc" 658*67e74705SXin Li // CHECK-PPC64-ELFv1: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1" 659*67e74705SXin Li // 660*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 661*67e74705SXin Li // RUN: --target=powerpc64-linux-gnu -mabi=elfv2 \ 662*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PPC64-ELFv2 %s 663*67e74705SXin Li // CHECK-PPC64-ELFv2: "{{.*}}ld{{(.exe)?}}" 664*67e74705SXin Li // CHECK-PPC64-ELFv2: "-m" "elf64ppc" 665*67e74705SXin Li // CHECK-PPC64-ELFv2: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2" 666*67e74705SXin Li // 667*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 668*67e74705SXin Li // RUN: --target=powerpc64le-linux-gnu \ 669*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PPC64LE %s 670*67e74705SXin Li // CHECK-PPC64LE: "{{.*}}ld{{(.exe)?}}" 671*67e74705SXin Li // CHECK-PPC64LE: "-m" "elf64lppc" 672*67e74705SXin Li // CHECK-PPC64LE: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2" 673*67e74705SXin Li // 674*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 675*67e74705SXin Li // RUN: --target=powerpc64le-linux-gnu -mabi=elfv1 \ 676*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv1 %s 677*67e74705SXin Li // CHECK-PPC64LE-ELFv1: "{{.*}}ld{{(.exe)?}}" 678*67e74705SXin Li // CHECK-PPC64LE-ELFv1: "-m" "elf64lppc" 679*67e74705SXin Li // CHECK-PPC64LE-ELFv1: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.1" 680*67e74705SXin Li // 681*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 682*67e74705SXin Li // RUN: --target=powerpc64le-linux-gnu -mabi=elfv2 \ 683*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PPC64LE-ELFv2 %s 684*67e74705SXin Li // CHECK-PPC64LE-ELFv2: "{{.*}}ld{{(.exe)?}}" 685*67e74705SXin Li // CHECK-PPC64LE-ELFv2: "-m" "elf64lppc" 686*67e74705SXin Li // CHECK-PPC64LE-ELFv2: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld64.so.2" 687*67e74705SXin Li // 688*67e74705SXin Li // Check that we do not pass --hash-style=gnu and --hash-style=both to linker 689*67e74705SXin Li // and provide correct path to the dynamic linker and emulation mode when build 690*67e74705SXin Li // for MIPS platforms. 691*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 692*67e74705SXin Li // RUN: --target=mips-linux-gnu \ 693*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS %s 694*67e74705SXin Li // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" 695*67e74705SXin Li // CHECK-MIPS: "-m" "elf32btsmip" 696*67e74705SXin Li // CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 697*67e74705SXin Li // CHECK-MIPS-NOT: "--hash-style={{gnu|both}}" 698*67e74705SXin Li // 699*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 700*67e74705SXin Li // RUN: --target=mipsel-linux-gnu \ 701*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s 702*67e74705SXin Li // CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}" 703*67e74705SXin Li // CHECK-MIPSEL: "-m" "elf32ltsmip" 704*67e74705SXin Li // CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 705*67e74705SXin Li // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}" 706*67e74705SXin Li // 707*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mnan=2008 \ 708*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPSEL-NAN2008 %s 709*67e74705SXin Li // CHECK-MIPSEL-NAN2008: "{{.*}}ld{{(.exe)?}}" 710*67e74705SXin Li // CHECK-MIPSEL-NAN2008: "-m" "elf32ltsmip" 711*67e74705SXin Li // CHECK-MIPSEL-NAN2008: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1" 712*67e74705SXin Li // CHECK-MIPSEL-NAN2008-NOT: "--hash-style={{gnu|both}}" 713*67e74705SXin Li // 714*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 --target=mipsel-linux-gnu -mcpu=mips32r6 \ 715*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS32R6EL %s 716*67e74705SXin Li // CHECK-MIPS32R6EL: "{{.*}}ld{{(.exe)?}}" 717*67e74705SXin Li // CHECK-MIPS32R6EL: "-m" "elf32ltsmip" 718*67e74705SXin Li // CHECK-MIPS32R6EL: "-dynamic-linker" "{{.*}}/lib/ld-linux-mipsn8.so.1" 719*67e74705SXin Li // CHECK-MIPS32R6EL-NOT: "--hash-style={{gnu|both}}" 720*67e74705SXin Li // 721*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 722*67e74705SXin Li // RUN: --target=mips64-linux-gnu \ 723*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s 724*67e74705SXin Li // CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}" 725*67e74705SXin Li // CHECK-MIPS64: "-m" "elf64btsmip" 726*67e74705SXin Li // CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1" 727*67e74705SXin Li // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}" 728*67e74705SXin Li // 729*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 730*67e74705SXin Li // RUN: --target=mips64el-linux-gnu \ 731*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s 732*67e74705SXin Li // CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}" 733*67e74705SXin Li // CHECK-MIPS64EL: "-m" "elf64ltsmip" 734*67e74705SXin Li // CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1" 735*67e74705SXin Li // CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}" 736*67e74705SXin Li // 737*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mnan=2008 \ 738*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-NAN2008 %s 739*67e74705SXin Li // CHECK-MIPS64EL-NAN2008: "{{.*}}ld{{(.exe)?}}" 740*67e74705SXin Li // CHECK-MIPS64EL-NAN2008: "-m" "elf64ltsmip" 741*67e74705SXin Li // CHECK-MIPS64EL-NAN2008: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-linux-mipsn8.so.1" 742*67e74705SXin Li // CHECK-MIPS64EL-NAN2008-NOT: "--hash-style={{gnu|both}}" 743*67e74705SXin Li // 744*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mcpu=mips64r6 \ 745*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS64R6EL %s 746*67e74705SXin Li // CHECK-MIPS64R6EL: "{{.*}}ld{{(.exe)?}}" 747*67e74705SXin Li // CHECK-MIPS64R6EL: "-m" "elf64ltsmip" 748*67e74705SXin Li // CHECK-MIPS64R6EL: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-linux-mipsn8.so.1" 749*67e74705SXin Li // CHECK-MIPS64R6EL-NOT: "--hash-style={{gnu|both}}" 750*67e74705SXin Li // 751*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 752*67e74705SXin Li // RUN: --target=mips64-linux-gnu -mabi=n32 \ 753*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s 754*67e74705SXin Li // CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" 755*67e74705SXin Li // CHECK-MIPS64-N32: "-m" "elf32btsmipn32" 756*67e74705SXin Li // CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld.so.1" 757*67e74705SXin Li // CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}" 758*67e74705SXin Li // 759*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 760*67e74705SXin Li // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 761*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s 762*67e74705SXin Li // CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" 763*67e74705SXin Li // CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32" 764*67e74705SXin Li // CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld.so.1" 765*67e74705SXin Li // CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}" 766*67e74705SXin Li // 767*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-linux-gnu -mabi=n32 \ 768*67e74705SXin Li // RUN: -mnan=2008 | FileCheck --check-prefix=CHECK-MIPS64EL-N32-NAN2008 %s 769*67e74705SXin Li // CHECK-MIPS64EL-N32-NAN2008: "{{.*}}ld{{(.exe)?}}" 770*67e74705SXin Li // CHECK-MIPS64EL-N32-NAN2008: "-m" "elf32ltsmipn32" 771*67e74705SXin Li // CHECK-MIPS64EL-N32-NAN2008: "-dynamic-linker" "{{.*}}/lib{{(32)?}}/ld-linux-mipsn8.so.1" 772*67e74705SXin Li // CHECK-MIPS64EL-N32-NAN2008-NOT: "--hash-style={{gnu|both}}" 773*67e74705SXin Li // 774*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 --target=mips64el-redhat-linux \ 775*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-REDHAT %s 776*67e74705SXin Li // CHECK-MIPS64EL-REDHAT: "{{.*}}ld{{(.exe)?}}" 777*67e74705SXin Li // CHECK-MIPS64EL-REDHAT: "-m" "elf64ltsmip" 778*67e74705SXin Li // CHECK-MIPS64EL-REDHAT: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld.so.1" 779*67e74705SXin Li // CHECK-MIPS64EL-REDHAT-NOT: "-dynamic-linker" "{{.*}}/lib{{(64)?}}/ld-musl-mipsel.so.1" 780*67e74705SXin Li // CHECK-MIPS64EL-REDHAT-NOT: "--hash-style={{gnu|both}}" 781*67e74705SXin Li // 782*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 783*67e74705SXin Li // RUN: --target=sparc-unknown-linux-gnu \ 784*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SPARCV8 %s 785*67e74705SXin Li // CHECK-SPARCV8: "{{.*}}ld{{(.exe)?}}" 786*67e74705SXin Li // CHECK-SPARCV8: "-m" "elf32_sparc" 787*67e74705SXin Li // CHECK-SPARCV8: "-dynamic-linker" "{{(/usr/sparc-unknown-linux-gnu)?}}/lib/ld-linux.so.2" 788*67e74705SXin Li // 789*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 790*67e74705SXin Li // RUN: --target=sparcel-unknown-linux-gnu \ 791*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SPARCV8EL %s 792*67e74705SXin Li // CHECK-SPARCV8EL: "{{.*}}ld{{(.exe)?}}" 793*67e74705SXin Li // CHECK-SPARCV8EL: "-m" "elf32_sparc" 794*67e74705SXin Li // CHECK-SPARCV8EL: "-dynamic-linker" "{{(/usr/sparcel-unknown-linux-gnu)?}}/lib/ld-linux.so.2" 795*67e74705SXin Li // 796*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 797*67e74705SXin Li // RUN: --target=sparcv9-unknown-linux-gnu \ 798*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SPARCV9 %s 799*67e74705SXin Li // CHECK-SPARCV9: "{{.*}}ld{{(.exe)?}}" 800*67e74705SXin Li // CHECK-SPARCV9: "-m" "elf64_sparc" 801*67e74705SXin Li // CHECK-SPARCV9: "-dynamic-linker" "{{(/usr/sparcv9-unknown-linux-gnu)?}}/lib{{(64)?}}/ld-linux.so.2" 802*67e74705SXin Li // 803*67e74705SXin Li // Thoroughly exercise the Debian multiarch environment. 804*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 805*67e74705SXin Li // RUN: --target=i686-linux-gnu \ 806*67e74705SXin Li // RUN: --gcc-toolchain="" \ 807*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 808*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s 809*67e74705SXin Li // CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 810*67e74705SXin Li // CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 811*67e74705SXin Li // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5" 812*67e74705SXin Li // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu" 813*67e74705SXin Li // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu" 814*67e74705SXin Li // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.." 815*67e74705SXin Li // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib" 816*67e74705SXin Li // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib" 817*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 818*67e74705SXin Li // RUN: --target=x86_64-linux-gnu \ 819*67e74705SXin Li // RUN: --gcc-toolchain="" \ 820*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 821*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s 822*67e74705SXin Li // CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 823*67e74705SXin Li // CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 824*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5" 825*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu" 826*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu" 827*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.." 828*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib" 829*67e74705SXin Li // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib" 830*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 831*67e74705SXin Li // RUN: --target=powerpc-linux-gnu \ 832*67e74705SXin Li // RUN: --gcc-toolchain="" \ 833*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 834*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s 835*67e74705SXin Li // CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 836*67e74705SXin Li // CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 837*67e74705SXin Li // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5" 838*67e74705SXin Li // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu" 839*67e74705SXin Li // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu" 840*67e74705SXin Li // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.." 841*67e74705SXin Li // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib" 842*67e74705SXin Li // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib" 843*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 844*67e74705SXin Li // RUN: --target=powerpc64le-linux-gnu \ 845*67e74705SXin Li // RUN: --gcc-toolchain="" \ 846*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 847*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64LE %s 848*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 849*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "{{.*}}/usr/lib/gcc/powerpc64le-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 850*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5" 851*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5/../../../powerpc64le-linux-gnu" 852*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/powerpc64le-linux-gnu" 853*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64le-linux-gnu/4.5/../../.." 854*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/lib" 855*67e74705SXin Li // CHECK-DEBIAN-PPC64LE: "-L[[SYSROOT]]/usr/lib" 856*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 857*67e74705SXin Li // RUN: --target=powerpc64-linux-gnu \ 858*67e74705SXin Li // RUN: --gcc-toolchain="" \ 859*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 860*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s 861*67e74705SXin Li // CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 862*67e74705SXin Li // CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 863*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5" 864*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu" 865*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu" 866*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.." 867*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib" 868*67e74705SXin Li // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib" 869*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 870*67e74705SXin Li // RUN: --target=mips-linux-gnu \ 871*67e74705SXin Li // RUN: --gcc-toolchain="" \ 872*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 873*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s 874*67e74705SXin Li // CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 875*67e74705SXin Li // CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 876*67e74705SXin Li // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 877*67e74705SXin Li // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu" 878*67e74705SXin Li // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu" 879*67e74705SXin Li // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 880*67e74705SXin Li // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib" 881*67e74705SXin Li // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib" 882*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 883*67e74705SXin Li // RUN: --target=mipsel-linux-gnu \ 884*67e74705SXin Li // RUN: --gcc-toolchain="" \ 885*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 886*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s 887*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 888*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 889*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 890*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu" 891*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu" 892*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 893*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib" 894*67e74705SXin Li // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib" 895*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 896*67e74705SXin Li // RUN: --target=mips64-linux-gnu \ 897*67e74705SXin Li // RUN: --gcc-toolchain="" \ 898*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 899*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s 900*67e74705SXin Li // CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 901*67e74705SXin Li // CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o" 902*67e74705SXin Li // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64" 903*67e74705SXin Li // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 904*67e74705SXin Li // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 905*67e74705SXin Li // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib" 906*67e74705SXin Li // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib" 907*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 908*67e74705SXin Li // RUN: --target=mips64el-linux-gnu \ 909*67e74705SXin Li // RUN: --gcc-toolchain="" \ 910*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 911*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s 912*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 913*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o" 914*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64" 915*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 916*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 917*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib" 918*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib" 919*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 920*67e74705SXin Li // RUN: --target=mips64-linux-gnu -mabi=n32 \ 921*67e74705SXin Li // RUN: --gcc-toolchain="" \ 922*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 923*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s 924*67e74705SXin Li // CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 925*67e74705SXin Li // CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o" 926*67e74705SXin Li // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32" 927*67e74705SXin Li // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 928*67e74705SXin Li // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 929*67e74705SXin Li // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib" 930*67e74705SXin Li // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib" 931*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 932*67e74705SXin Li // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 933*67e74705SXin Li // RUN: --gcc-toolchain="" \ 934*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 935*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s 936*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 937*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o" 938*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32" 939*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 940*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 941*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib" 942*67e74705SXin Li // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib" 943*67e74705SXin Li // 944*67e74705SXin Li // Check linker paths on Debian 8 / Sparc 945*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 946*67e74705SXin Li // RUN: --target=sparc-linux-gnu \ 947*67e74705SXin Li // RUN: --gcc-toolchain="" \ 948*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \ 949*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32 %s 950*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 951*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu{{/|\\\\}}crt1.o" 952*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu{{/|\\\\}}crti.o" 953*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9{{/|\\\\}}crtbegin.o" 954*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9" 955*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu" 956*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib" 957*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/lib/sparc-linux-gnu" 958*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib/sparc-linux-gnu" 959*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/lib" 960*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "-L[[SYSROOT]]/usr/lib" 961*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9{{/|\\\\}}crtend.o" 962*67e74705SXin Li // CHECK-DEBIAN-SPARC32: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../sparc-linux-gnu{{/|\\\\}}crtn.o" 963*67e74705SXin Li // 964*67e74705SXin Li // Check linker paths on Debian 8 / Sparc, with the oldstyle multilib packages 965*67e74705SXin Li // RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \ 966*67e74705SXin Li // RUN: --target=sparc-linux-gnu \ 967*67e74705SXin Li // RUN: --gcc-toolchain="" \ 968*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_8_sparc_multilib_tree \ 969*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC32-LIB64 %s 970*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 971*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64{{/|\\\\}}crt1.o" 972*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64{{/|\\\\}}crti.o" 973*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/64{{/|\\\\}}crtbegin.o" 974*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/64" 975*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64" 976*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/lib/../lib64" 977*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/../lib64" 978*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9" 979*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/lib" 980*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "-L[[SYSROOT]]/usr/lib" 981*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/64{{/|\\\\}}crtend.o" 982*67e74705SXin Li // CHECK-DEBIAN-SPARC32-LIB64: "[[SYSROOT]]/usr/lib/gcc/sparc-linux-gnu/4.9/../../../../lib64{{/|\\\\}}crtn.o" 983*67e74705SXin Li // 984*67e74705SXin Li // Check linker paths on Debian 8 / Sparc64 985*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 986*67e74705SXin Li // RUN: --target=sparc64-linux-gnu \ 987*67e74705SXin Li // RUN: --gcc-toolchain="" \ 988*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_8_sparc64_tree \ 989*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-SPARC64 %s 990*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 991*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu{{/|\\\\}}crt1.o" 992*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu{{/|\\\\}}crti.o" 993*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9{{/|\\\\}}crtbegin.o" 994*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9" 995*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu" 996*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/lib/sparc64-linux-gnu" 997*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/lib/../lib64" 998*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/sparc64-linux-gnu" 999*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../.." 1000*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/lib" 1001*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "-L[[SYSROOT]]/usr/lib" 1002*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9{{/|\\\\}}crtend.o" 1003*67e74705SXin Li // CHECK-DEBIAN-SPARC64: "[[SYSROOT]]/usr/lib/gcc/sparc64-linux-gnu/4.9/../../../sparc64-linux-gnu{{/|\\\\}}crtn.o" 1004*67e74705SXin Li // 1005*67e74705SXin Li // Test linker invocation on Android. 1006*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1007*67e74705SXin Li // RUN: --target=arm-linux-androideabi \ 1008*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1009*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1010*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1011*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1012*67e74705SXin Li // RUN: --target=arm-linux-android \ 1013*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1014*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1015*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1016*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1017*67e74705SXin Li // RUN: --target=aarch64-linux-android \ 1018*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1019*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1020*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1021*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1022*67e74705SXin Li // RUN: --target=arm64-linux-android \ 1023*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1024*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1025*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1026*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1027*67e74705SXin Li // RUN: --target=mipsel-linux-android \ 1028*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1029*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1030*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1031*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1032*67e74705SXin Li // RUN: --target=mips64el-linux-android \ 1033*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1034*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1035*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1036*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1037*67e74705SXin Li // RUN: --target=i686-linux-android \ 1038*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1039*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1040*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1041*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1042*67e74705SXin Li // RUN: --target=x86_64-linux-android \ 1043*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1044*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1045*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 1046*67e74705SXin Li // CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1047*67e74705SXin Li // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 1048*67e74705SXin Li // CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib" 1049*67e74705SXin Li // CHECK-ANDROID-NOT: "gcc_s" 1050*67e74705SXin Li // CHECK-ANDROID: "-lgcc" 1051*67e74705SXin Li // CHECK-ANDROID: "-ldl" 1052*67e74705SXin Li // CHECK-ANDROID-NOT: "gcc_s" 1053*67e74705SXin Li // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o" 1054*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1055*67e74705SXin Li // RUN: --target=arm-linux-androideabi \ 1056*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1057*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1058*67e74705SXin Li // RUN: -shared \ 1059*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1060*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1061*67e74705SXin Li // RUN: --target=arm-linux-android \ 1062*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1063*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1064*67e74705SXin Li // RUN: -shared \ 1065*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1066*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1067*67e74705SXin Li // RUN: --target=aarch64-linux-android \ 1068*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1069*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1070*67e74705SXin Li // RUN: -shared \ 1071*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1072*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1073*67e74705SXin Li // RUN: --target=arm64-linux-android \ 1074*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1075*67e74705SXin Li // RUN: -shared \ 1076*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1077*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1078*67e74705SXin Li // RUN: --target=mipsel-linux-android \ 1079*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1080*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1081*67e74705SXin Li // RUN: -shared \ 1082*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1083*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1084*67e74705SXin Li // RUN: --target=mips64el-linux-android \ 1085*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1086*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1087*67e74705SXin Li // RUN: -shared \ 1088*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1089*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1090*67e74705SXin Li // RUN: --target=i686-linux-android \ 1091*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1092*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1093*67e74705SXin Li // RUN: -shared \ 1094*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1095*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1096*67e74705SXin Li // RUN: --target=x86_64-linux-android \ 1097*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1098*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1099*67e74705SXin Li // RUN: -shared \ 1100*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 1101*67e74705SXin Li // CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1102*67e74705SXin Li // CHECK-ANDROID-SO-NOT: "-Bsymbolic" 1103*67e74705SXin Li // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o" 1104*67e74705SXin Li // CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib" 1105*67e74705SXin Li // CHECK-ANDROID-SO-NOT: "gcc_s" 1106*67e74705SXin Li // CHECK-ANDROID-SO: "-lgcc" 1107*67e74705SXin Li // CHECK-ANDROID-SO: "-ldl" 1108*67e74705SXin Li // CHECK-ANDROID-SO-NOT: "gcc_s" 1109*67e74705SXin Li // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o" 1110*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1111*67e74705SXin Li // RUN: --target=arm-linux-androideabi \ 1112*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1113*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1114*67e74705SXin Li // RUN: -static \ 1115*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1116*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1117*67e74705SXin Li // RUN: --target=arm-linux-android \ 1118*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1119*67e74705SXin Li // RUN: -static \ 1120*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1121*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1122*67e74705SXin Li // RUN: --target=aarch64-linux-android \ 1123*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1124*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1125*67e74705SXin Li // RUN: -static \ 1126*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1127*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1128*67e74705SXin Li // RUN: --target=arm64-linux-android \ 1129*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1130*67e74705SXin Li // RUN: -static \ 1131*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1132*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1133*67e74705SXin Li // RUN: --target=mipsel-linux-android \ 1134*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1135*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1136*67e74705SXin Li // RUN: -static \ 1137*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1138*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1139*67e74705SXin Li // RUN: --target=mips64el-linux-android \ 1140*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1141*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1142*67e74705SXin Li // RUN: -static \ 1143*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1144*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1145*67e74705SXin Li // RUN: --target=i686-linux-android \ 1146*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1147*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1148*67e74705SXin Li // RUN: -static \ 1149*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1150*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1151*67e74705SXin Li // RUN: --target=x86_64-linux-android \ 1152*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1153*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1154*67e74705SXin Li // RUN: -static \ 1155*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 1156*67e74705SXin Li // CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1157*67e74705SXin Li // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o" 1158*67e74705SXin Li // CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib" 1159*67e74705SXin Li // CHECK-ANDROID-STATIC-NOT: "gcc_s" 1160*67e74705SXin Li // CHECK-ANDROID-STATIC: "-lgcc" 1161*67e74705SXin Li // CHECK-ANDROID-STATIC-NOT: "-ldl" 1162*67e74705SXin Li // CHECK-ANDROID-STATIC-NOT: "gcc_s" 1163*67e74705SXin Li // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o" 1164*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1165*67e74705SXin Li // RUN: --target=arm-linux-androideabi \ 1166*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1167*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1168*67e74705SXin Li // RUN: -pie \ 1169*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1170*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1171*67e74705SXin Li // RUN: --target=arm-linux-android \ 1172*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1173*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1174*67e74705SXin Li // RUN: -pie \ 1175*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1176*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1177*67e74705SXin Li // RUN: --target=aarch64-linux-android \ 1178*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1179*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1180*67e74705SXin Li // RUN: -pie \ 1181*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1182*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1183*67e74705SXin Li // RUN: --target=arm64-linux-android \ 1184*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1185*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1186*67e74705SXin Li // RUN: -pie \ 1187*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1188*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1189*67e74705SXin Li // RUN: --target=mipsel-linux-android \ 1190*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1191*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1192*67e74705SXin Li // RUN: -pie \ 1193*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1194*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1195*67e74705SXin Li // RUN: --target=mips64el-linux-android \ 1196*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1197*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1198*67e74705SXin Li // RUN: -pie \ 1199*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1200*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1201*67e74705SXin Li // RUN: --target=i686-linux-android \ 1202*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1203*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1204*67e74705SXin Li // RUN: -pie \ 1205*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1206*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1207*67e74705SXin Li // RUN: --target=x86_64-linux-android \ 1208*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1209*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1210*67e74705SXin Li // RUN: -pie \ 1211*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 1212*67e74705SXin Li // CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1213*67e74705SXin Li // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 1214*67e74705SXin Li // CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib" 1215*67e74705SXin Li // CHECK-ANDROID-PIE-NOT: "gcc_s" 1216*67e74705SXin Li // CHECK-ANDROID-PIE: "-lgcc" 1217*67e74705SXin Li // CHECK-ANDROID-PIE-NOT: "gcc_s" 1218*67e74705SXin Li // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o" 1219*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1220*67e74705SXin Li // RUN: --target=arm-linux-androideabi \ 1221*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1222*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1223*67e74705SXin Li // RUN: --target=arm-linux-android \ 1224*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1225*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1226*67e74705SXin Li // RUN: --target=aarch64-linux-android \ 1227*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1228*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1229*67e74705SXin Li // RUN: --target=arm64-linux-android \ 1230*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1231*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1232*67e74705SXin Li // RUN: --target=mipsel-linux-android \ 1233*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1234*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1235*67e74705SXin Li // RUN: --target=mips64el-linux-android \ 1236*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1237*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1238*67e74705SXin Li // RUN: --target=i686-linux-android \ 1239*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1240*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1241*67e74705SXin Li // RUN: --target=x86_64-linux-android \ 1242*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-NO-DEFAULT-PIE %s 1243*67e74705SXin Li // CHECK-ANDROID-NO-DEFAULT-PIE-NOT: -pie 1244*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1245*67e74705SXin Li // RUN: --target=arm-linux-androideabi \ 1246*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1247*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1248*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1249*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1250*67e74705SXin Li // RUN: --target=arm-linux-android \ 1251*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1252*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1253*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1254*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1255*67e74705SXin Li // RUN: --target=mipsel-linux-android \ 1256*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1257*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1258*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1259*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1260*67e74705SXin Li // RUN: --target=aarch64-linux-android \ 1261*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1262*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1263*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1264*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1265*67e74705SXin Li // RUN: --target=arm64-linux-android \ 1266*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1267*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1268*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1269*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1270*67e74705SXin Li // RUN: --target=mips64el-linux-android \ 1271*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1272*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1273*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1274*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1275*67e74705SXin Li // RUN: --target=i686-linux-android \ 1276*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1277*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1278*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-32 %s 1279*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1280*67e74705SXin Li // RUN: --target=x86_64-linux-android \ 1281*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1282*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1283*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-64 %s 1284*67e74705SXin Li // CHECK-ANDROID-32: "-dynamic-linker" "/system/bin/linker" 1285*67e74705SXin Li // CHECK-ANDROID-64: "-dynamic-linker" "/system/bin/linker64" 1286*67e74705SXin Li // 1287*67e74705SXin Li // Test that -pthread does not add -lpthread on Android. 1288*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1289*67e74705SXin Li // RUN: --target=arm-linux-androideabi -pthread \ 1290*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1291*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1292*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1293*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1294*67e74705SXin Li // RUN: --target=arm-linux-android -pthread \ 1295*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1296*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1297*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1298*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1299*67e74705SXin Li // RUN: --target=aarch64-linux-android -pthread \ 1300*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1301*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1302*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1303*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1304*67e74705SXin Li // RUN: --target=arm64-linux-android -pthread \ 1305*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1306*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1307*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1308*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1309*67e74705SXin Li // RUN: --target=mipsel-linux-android -pthread \ 1310*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1311*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1312*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1313*67e74705SXin Li // RUN: --target=mips64el-linux-android -pthread \ 1314*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1315*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1316*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1317*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1318*67e74705SXin Li // RUN: --target=i686-linux-android -pthread \ 1319*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1320*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1321*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1322*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1323*67e74705SXin Li // RUN: --target=x86_64-linux-android -pthread \ 1324*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1325*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1326*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1327*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1328*67e74705SXin Li // RUN: --target=arm-linux-androideabi -pthread \ 1329*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1330*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1331*67e74705SXin Li // RUN: -shared \ 1332*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1333*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1334*67e74705SXin Li // RUN: --target=arm-linux-android -pthread \ 1335*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1336*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1337*67e74705SXin Li // RUN: -shared \ 1338*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1339*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1340*67e74705SXin Li // RUN: --target=aarch64-linux-android -pthread \ 1341*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1342*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1343*67e74705SXin Li // RUN: -shared \ 1344*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1345*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1346*67e74705SXin Li // RUN: --target=arm64-linux-android -pthread \ 1347*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1348*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1349*67e74705SXin Li // RUN: -shared \ 1350*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1351*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1352*67e74705SXin Li // RUN: --target=mipsel-linux-android -pthread \ 1353*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1354*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1355*67e74705SXin Li // RUN: -shared \ 1356*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1357*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1358*67e74705SXin Li // RUN: --target=mips64el-linux-android -pthread \ 1359*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1360*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1361*67e74705SXin Li // RUN: -shared \ 1362*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1363*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1364*67e74705SXin Li // RUN: --target=i686-linux-android -pthread \ 1365*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1366*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1367*67e74705SXin Li // RUN: -shared \ 1368*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1369*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1370*67e74705SXin Li // RUN: --target=x86_64-linux-android -pthread \ 1371*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1372*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1373*67e74705SXin Li // RUN: -shared \ 1374*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD %s 1375*67e74705SXin Li // CHECK-ANDROID-PTHREAD-NOT: -lpthread 1376*67e74705SXin Li // 1377*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %t.o -### -o %t 2>&1 \ 1378*67e74705SXin Li // RUN: --target=arm-linux-androideabi -pthread \ 1379*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1380*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1381*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PTHREAD-LINK %s 1382*67e74705SXin Li // CHECK-ANDROID-PTHREAD-LINK-NOT: argument unused during compilation: '-pthread' 1383*67e74705SXin Li // 1384*67e74705SXin Li // Check linker invocation on Debian 6 MIPS 32/64-bit. 1385*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1386*67e74705SXin Li // RUN: --target=mipsel-linux-gnu \ 1387*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1388*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1389*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s 1390*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1391*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o" 1392*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o" 1393*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o" 1394*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4" 1395*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib" 1396*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib" 1397*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib" 1398*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 1399*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib" 1400*67e74705SXin Li // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib" 1401*67e74705SXin Li // 1402*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1403*67e74705SXin Li // RUN: --target=mips64el-linux-gnu \ 1404*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1405*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1406*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s 1407*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1408*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o" 1409*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o" 1410*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o" 1411*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64" 1412*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64" 1413*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64" 1414*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64" 1415*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 1416*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib" 1417*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib" 1418*67e74705SXin Li // 1419*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1420*67e74705SXin Li // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 1421*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1422*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 1423*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s 1424*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1425*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o" 1426*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o" 1427*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o" 1428*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32" 1429*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32" 1430*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32" 1431*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32" 1432*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 1433*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib" 1434*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib" 1435*67e74705SXin Li // 1436*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1437*67e74705SXin Li // RUN: --target=mips64-linux-gnuabi64 -mabi=n64 \ 1438*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1439*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1440*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64-GNUABI %s 1441*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1442*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crt1.o" 1443*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crti.o" 1444*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o" 1445*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9" 1446*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64" 1447*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib/mips64-linux-gnuabi64" 1448*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64-linux-gnuabi64" 1449*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9" 1450*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../.." 1451*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/lib" 1452*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "-L[[SYSROOT]]/usr/lib" 1453*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9{{/|\\\\}}crtend.o" 1454*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64-GNUABI: "{{.*}}/usr/lib/gcc/mips64-linux-gnuabi64/4.9/../../../mips64-linux-gnuabi64{{/|\\\\}}crtn.o" 1455*67e74705SXin Li // 1456*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1457*67e74705SXin Li // RUN: --target=mips64el-linux-gnuabi64 -mabi=n64 \ 1458*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1459*67e74705SXin Li // RUN: --sysroot=%S/Inputs/debian_6_mips64_tree \ 1460*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-GNUABI %s 1461*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1462*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crt1.o" 1463*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crti.o" 1464*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtbegin.o" 1465*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9" 1466*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64" 1467*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib/mips64el-linux-gnuabi64" 1468*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/mips64el-linux-gnuabi64" 1469*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9" 1470*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../.." 1471*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/lib" 1472*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "-L[[SYSROOT]]/usr/lib" 1473*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9{{/|\\\\}}crtend.o" 1474*67e74705SXin Li // CHECK-DEBIAN-ML-MIPS64EL-GNUABI: "{{.*}}/usr/lib/gcc/mips64el-linux-gnuabi64/4.9/../../../mips64el-linux-gnuabi64{{/|\\\\}}crtn.o" 1475*67e74705SXin Li // 1476*67e74705SXin Li // Test linker invocation for Freescale SDK (OpenEmbedded). 1477*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1478*67e74705SXin Li // RUN: --target=powerpc-fsl-linux \ 1479*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1480*67e74705SXin Li // RUN: --sysroot=%S/Inputs/freescale_ppc_tree \ 1481*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s 1482*67e74705SXin Li // CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1483*67e74705SXin Li // CHECK-FSL-PPC: "-m" "elf32ppclinux" 1484*67e74705SXin Li // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o" 1485*67e74705SXin Li // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o" 1486*67e74705SXin Li // CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib" 1487*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1488*67e74705SXin Li // RUN: --target=powerpc64-fsl-linux \ 1489*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1490*67e74705SXin Li // RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \ 1491*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s 1492*67e74705SXin Li // CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1493*67e74705SXin Li // CHECK-FSL-PPC64: "-m" "elf64ppc" 1494*67e74705SXin Li // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o" 1495*67e74705SXin Li // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o" 1496*67e74705SXin Li // CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.." 1497*67e74705SXin Li // 1498*67e74705SXin Li // Check that crtfastmath.o is linked with -ffast-math and with -Ofast. 1499*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s \ 1500*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1501*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1502*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1503*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \ 1504*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1505*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1506*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1507*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\ 1508*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1509*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1510*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1511*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast\ 1512*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1513*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1514*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1515*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -O3\ 1516*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1517*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1518*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1519*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -O3 -Ofast\ 1520*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1521*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1522*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1523*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \ 1524*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1525*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1526*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1527*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-fast-math \ 1528*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1529*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1530*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1531*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -Ofast -fno-unsafe-math-optimizations \ 1532*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1533*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1534*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1535*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -fno-fast-math -Ofast \ 1536*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1537*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1538*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1539*67e74705SXin Li // RUN: %clang --target=x86_64-unknown-linux -### %s -fno-unsafe-math-optimizations -Ofast \ 1540*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1541*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1542*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 1543*67e74705SXin Li // We don't have crtfastmath.o in the i386 tree, use it to check that file 1544*67e74705SXin Li // detection works. 1545*67e74705SXin Li // RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \ 1546*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1547*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 1548*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 1549*67e74705SXin Li // CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o 1550*67e74705SXin Li // CHECK-NOCRTFASTMATH-NOT: crtfastmath.o 1551*67e74705SXin Li 1552*67e74705SXin Li // Check that we link in gcrt1.o when compiling with -pg 1553*67e74705SXin Li // RUN: %clang -pg --target=x86_64-unknown-linux -### %s \ 1554*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1555*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ 1556*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-PG %s 1557*67e74705SXin Li // CHECK-PG: gcrt1.o 1558*67e74705SXin Li 1559*67e74705SXin Li // GCC forwards -u to the linker. 1560*67e74705SXin Li // RUN: %clang -u asdf --target=x86_64-unknown-linux -### %s \ 1561*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1562*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ 1563*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-u %s 1564*67e74705SXin Li // CHECK-u: "-u" "asdf" 1565*67e74705SXin Li 1566*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1567*67e74705SXin Li // RUN: --target=armeb-unknown-linux \ 1568*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1569*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1570*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ARMEB %s 1571*67e74705SXin Li // CHECK-ARMEB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1572*67e74705SXin Li // CHECK-ARMEB-NOT: "--be8" 1573*67e74705SXin Li // CHECK-ARMEB: "-m" "armelfb_linux_eabi" 1574*67e74705SXin Li 1575*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 1576*67e74705SXin Li // RUN: --target=armebv7-unknown-linux \ 1577*67e74705SXin Li // RUN: --gcc-toolchain="" \ 1578*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1579*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ARMV7EB %s 1580*67e74705SXin Li // CHECK-ARMV7EB: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 1581*67e74705SXin Li // CHECK-ARMV7EB: "--be8" 1582*67e74705SXin Li // CHECK-ARMV7EB: "-m" "armelfb_linux_eabi" 1583*67e74705SXin Li 1584*67e74705SXin Li // Check dynamic-linker for musl-libc 1585*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1586*67e74705SXin Li // RUN: --target=i386-pc-linux-musl \ 1587*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-X86 %s 1588*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1589*67e74705SXin Li // RUN: --target=x86_64-pc-linux-musl \ 1590*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-X86_64 %s 1591*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1592*67e74705SXin Li // RUN: --target=mips-pc-linux-musl \ 1593*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS %s 1594*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1595*67e74705SXin Li // RUN: --target=mipsel-pc-linux-musl \ 1596*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPSEL %s 1597*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1598*67e74705SXin Li // RUN: --target=mips64-pc-linux-musl \ 1599*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS64 %s 1600*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1601*67e74705SXin Li // RUN: --target=mips64el-pc-linux-musl \ 1602*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-MIPS64EL %s 1603*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1604*67e74705SXin Li // RUN: --target=powerpc-pc-linux-musl \ 1605*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-PPC %s 1606*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1607*67e74705SXin Li // RUN: --target=powerpc64-pc-linux-musl \ 1608*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-PPC64 %s 1609*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1610*67e74705SXin Li // RUN: --target=thumb-pc-linux-musleabi \ 1611*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARM %s 1612*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1613*67e74705SXin Li // RUN: --target=thumb-pc-linux-musleabihf \ 1614*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s 1615*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1616*67e74705SXin Li // RUN: --target=thumbeb-pc-linux-musleabi \ 1617*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s 1618*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1619*67e74705SXin Li // RUN: --target=thumbeb-pc-linux-musleabihf \ 1620*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s 1621*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1622*67e74705SXin Li // RUN: --target=arm-pc-linux-musleabi \ 1623*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARM %s 1624*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1625*67e74705SXin Li // RUN: --target=arm-pc-linux-musleabihf \ 1626*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMHF %s 1627*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1628*67e74705SXin Li // RUN: --target=armeb-pc-linux-musleabi \ 1629*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEB %s 1630*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1631*67e74705SXin Li // RUN: --target=armeb-pc-linux-musleabihf \ 1632*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-ARMEBHF %s 1633*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1634*67e74705SXin Li // RUN: --target=aarch64-pc-linux-musleabi \ 1635*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-AARCH64 %s 1636*67e74705SXin Li // RUN: %clang %s -### -o %t.o 2>&1 \ 1637*67e74705SXin Li // RUN: --target=aarch64_be-pc-linux-musleabi \ 1638*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MUSL-AARCH64_BE %s 1639*67e74705SXin Li // CHECK-MUSL-X86: "-dynamic-linker" "/lib/ld-musl-i386.so.1" 1640*67e74705SXin Li // CHECK-MUSL-X86_64: "-dynamic-linker" "/lib/ld-musl-x86_64.so.1" 1641*67e74705SXin Li // CHECK-MUSL-MIPS: "-dynamic-linker" "/lib/ld-musl-mips.so.1" 1642*67e74705SXin Li // CHECK-MUSL-MIPSEL: "-dynamic-linker" "/lib/ld-musl-mipsel.so.1" 1643*67e74705SXin Li // CHECK-MUSL-MIPS64: "-dynamic-linker" "/lib/ld-musl-mips64.so.1" 1644*67e74705SXin Li // CHECK-MUSL-MIPS64EL: "-dynamic-linker" "/lib/ld-musl-mips64el.so.1" 1645*67e74705SXin Li // CHECK-MUSL-PPC: "-dynamic-linker" "/lib/ld-musl-powerpc.so.1" 1646*67e74705SXin Li // CHECK-MUSL-PPC64: "-dynamic-linker" "/lib/ld-musl-powerpc64.so.1" 1647*67e74705SXin Li // CHECK-MUSL-ARM: "-dynamic-linker" "/lib/ld-musl-arm.so.1" 1648*67e74705SXin Li // CHECK-MUSL-ARMHF: "-dynamic-linker" "/lib/ld-musl-armhf.so.1" 1649*67e74705SXin Li // CHECK-MUSL-ARMEB: "-dynamic-linker" "/lib/ld-musl-armeb.so.1" 1650*67e74705SXin Li // CHECK-MUSL-ARMEBHF: "-dynamic-linker" "/lib/ld-musl-armebhf.so.1" 1651*67e74705SXin Li // CHECK-MUSL-AARCH64: "-dynamic-linker" "/lib/ld-musl-aarch64.so.1" 1652*67e74705SXin Li // CHECK-MUSL-AARCH64_BE: "-dynamic-linker" "/lib/ld-musl-aarch64_be.so.1" 1653