1 // General tests that ld invocations on Linux targets sane. Note that we use 2 // sysroot to make these tests independent of the host system. 3 // 4 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 5 // RUN: --target=i386-unknown-linux \ 6 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 7 // RUN: | FileCheck --check-prefix=CHECK-LD-32 %s 8 // CHECK-LD-32-NOT: warning: 9 // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 10 // CHECK-LD-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 11 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 12 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 13 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 14 // CHECK-LD-32: "-L[[SYSROOT]]/lib" 15 // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib" 16 // 17 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 18 // RUN: --target=x86_64-unknown-linux \ 19 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 20 // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s 21 // CHECK-LD-64-NOT: warning: 22 // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 23 // CHECK-LD-64: "--eh-frame-hdr" 24 // CHECK-LD-64: "-m" "elf_x86_64" 25 // CHECK-LD-64: "-dynamic-linker" 26 // CHECK-LD-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 27 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 28 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 29 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 30 // CHECK-LD-64: "-L[[SYSROOT]]/lib" 31 // CHECK-LD-64: "-L[[SYSROOT]]/usr/lib" 32 // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 33 // CHECK-LD-64: "-lc" 34 // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" 35 // 36 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 37 // RUN: --target=x86_64-unknown-linux \ 38 // RUN: -static-libgcc \ 39 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 40 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC-LIBGCC %s 41 // CHECK-LD-64-STATIC-LIBGCC-NOT: warning: 42 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 43 // CHECK-LD-64-STATIC-LIBGCC: "--eh-frame-hdr" 44 // CHECK-LD-64-STATIC-LIBGCC: "-m" "elf_x86_64" 45 // CHECK-LD-64-STATIC-LIBGCC: "-dynamic-linker" 46 // CHECK-LD-64-STATIC-LIBGCC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 47 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 48 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 49 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 50 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/lib" 51 // CHECK-LD-64-STATIC-LIBGCC: "-L[[SYSROOT]]/usr/lib" 52 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 53 // CHECK-LD-64-STATIC-LIBGCC: "-lc" 54 // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" 55 // 56 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 57 // RUN: --target=x86_64-unknown-linux \ 58 // RUN: -static \ 59 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 60 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 61 // CHECK-LD-64-STATIC-NOT: warning: 62 // CHECK-LD-64-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 63 // CHECK-LD-64-STATIC-NOT: "--eh-frame-hdr" 64 // CHECK-LD-64-STATIC: "-m" "elf_x86_64" 65 // CHECK-LD-64-STATIC-NOT: "-dynamic-linker" 66 // CHECK-LD-64-STATIC: "-static" 67 // CHECK-LD-64-STATIC: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbeginT.o" 68 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 69 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 70 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 71 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/lib" 72 // CHECK-LD-64-STATIC: "-L[[SYSROOT]]/usr/lib" 73 // CHECK-LD-64-STATIC: "--start-group" "-lgcc" "-lgcc_eh" "-lc" "--end-group" 74 // 75 // Check that flags can be combined. The -static dominates. 76 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 77 // RUN: --target=x86_64-unknown-linux \ 78 // RUN: -static-libgcc -static \ 79 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 80 // RUN: | FileCheck --check-prefix=CHECK-LD-64-STATIC %s 81 // 82 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 83 // RUN: --target=i386-unknown-linux -m32 \ 84 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 85 // RUN: | FileCheck --check-prefix=CHECK-32-TO-32 %s 86 // CHECK-32-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 87 // CHECK-32-TO-32: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 88 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 89 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib32" 90 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib32" 91 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib/../lib32" 92 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 93 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 94 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 95 // CHECK-32-TO-32: "-L[[SYSROOT]]/lib" 96 // CHECK-32-TO-32: "-L[[SYSROOT]]/usr/lib" 97 // 98 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 99 // RUN: --target=i386-unknown-linux -m64 \ 100 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 101 // RUN: | FileCheck --check-prefix=CHECK-32-TO-64 %s 102 // CHECK-32-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 103 // CHECK-32-TO-64: "{{.*}}/usr/lib/gcc/i386-unknown-linux/4.6.0/64{{/|\\\\}}crtbegin.o" 104 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/64" 105 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib/../lib64" 106 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../lib64" 107 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib/../lib64" 108 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 109 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0" 110 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../../../i386-unknown-linux/lib" 111 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/i386-unknown-linux/4.6.0/../../.." 112 // CHECK-32-TO-64: "-L[[SYSROOT]]/lib" 113 // CHECK-32-TO-64: "-L[[SYSROOT]]/usr/lib" 114 // 115 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 116 // RUN: --target=x86_64-unknown-linux -m64 \ 117 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 118 // RUN: | FileCheck --check-prefix=CHECK-64-TO-64 %s 119 // CHECK-64-TO-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 120 // CHECK-64-TO-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 121 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 122 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib64" 123 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib64" 124 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib/../lib64" 125 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/../lib64" 126 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 127 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 128 // CHECK-64-TO-64: "-L[[SYSROOT]]/lib" 129 // CHECK-64-TO-64: "-L[[SYSROOT]]/usr/lib" 130 // 131 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 132 // RUN: --target=x86_64-unknown-linux -m32 \ 133 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 134 // RUN: | FileCheck --check-prefix=CHECK-64-TO-32 %s 135 // CHECK-64-TO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 136 // CHECK-64-TO-32: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 137 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 138 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib/../lib32" 139 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../lib32" 140 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib/../lib32" 141 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/../lib32" 142 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 143 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../../../x86_64-unknown-linux/lib" 144 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." 145 // CHECK-64-TO-32: "-L[[SYSROOT]]/lib" 146 // CHECK-64-TO-32: "-L[[SYSROOT]]/usr/lib" 147 // 148 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 149 // RUN: --target=x86_64-unknown-linux -m32 \ 150 // RUN: --gcc-toolchain=%S/Inputs/multilib_64bit_linux_tree/usr \ 151 // RUN: --sysroot=%S/Inputs/multilib_32bit_linux_tree \ 152 // RUN: | FileCheck --check-prefix=CHECK-64-TO-32-SYSROOT %s 153 // CHECK-64-TO-32-SYSROOT: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 154 // CHECK-64-TO-32-SYSROOT: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32{{/|\\\\}}crtbegin.o" 155 // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32" 156 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib/../lib32" 157 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib/../lib32" 158 // CHECK-64-TO-32-SYSROOT: "-L{{[^"]*}}/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 159 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/lib" 160 // CHECK-64-TO-32-SYSROOT: "-L[[SYSROOT]]/usr/lib" 161 // 162 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 163 // RUN: --target=i386-unknown-linux -m32 \ 164 // RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \ 165 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 166 // RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-32 %s 167 // CHECK-INSTALL-DIR-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 168 // CHECK-INSTALL-DIR-32: "{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0{{/|\\\\}}crtbegin.o" 169 // CHECK-INSTALL-DIR-32: "-L{{.*}}/Inputs/fake_install_tree/bin/../lib/gcc/i386-unknown-linux/4.7.0" 170 // 171 // Check that with 64-bit builds, we don't actually use the install directory 172 // as its version of GCC is lower than our sysrooted version. 173 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 174 // RUN: --target=x86_64-unknown-linux -m64 \ 175 // RUN: -ccc-install-dir %S/Inputs/fake_install_tree/bin \ 176 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 177 // RUN: | FileCheck --check-prefix=CHECK-INSTALL-DIR-64 %s 178 // CHECK-INSTALL-DIR-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 179 // CHECK-INSTALL-DIR-64: "{{.*}}/usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtbegin.o" 180 // CHECK-INSTALL-DIR-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0" 181 // 182 // Check that we support unusual patch version formats, including missing that 183 // component. 184 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 185 // RUN: --target=i386-unknown-linux -m32 \ 186 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing1/bin \ 187 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 188 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION1 %s 189 // CHECK-GCC-VERSION1: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 190 // CHECK-GCC-VERSION1: "{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7{{/|\\\\}}crtbegin.o" 191 // CHECK-GCC-VERSION1: "-L{{.*}}/Inputs/gcc_version_parsing1/bin/../lib/gcc/i386-unknown-linux/4.7" 192 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 193 // RUN: --target=i386-unknown-linux -m32 \ 194 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing2/bin \ 195 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 196 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION2 %s 197 // CHECK-GCC-VERSION2: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 198 // CHECK-GCC-VERSION2: "{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x{{/|\\\\}}crtbegin.o" 199 // CHECK-GCC-VERSION2: "-L{{.*}}/Inputs/gcc_version_parsing2/bin/../lib/gcc/i386-unknown-linux/4.7.x" 200 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 201 // RUN: --target=i386-unknown-linux -m32 \ 202 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing3/bin \ 203 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 204 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION3 %s 205 // CHECK-GCC-VERSION3: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 206 // CHECK-GCC-VERSION3: "{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5{{/|\\\\}}crtbegin.o" 207 // CHECK-GCC-VERSION3: "-L{{.*}}/Inputs/gcc_version_parsing3/bin/../lib/gcc/i386-unknown-linux/4.7.99-rc5" 208 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 209 // RUN: --target=i386-unknown-linux -m32 \ 210 // RUN: -ccc-install-dir %S/Inputs/gcc_version_parsing4/bin \ 211 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 212 // RUN: | FileCheck --check-prefix=CHECK-GCC-VERSION4 %s 213 // CHECK-GCC-VERSION4: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 214 // CHECK-GCC-VERSION4: "{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99{{/|\\\\}}crtbegin.o" 215 // CHECK-GCC-VERSION4: "-L{{.*}}/Inputs/gcc_version_parsing4/bin/../lib/gcc/i386-unknown-linux/4.7.99" 216 // 217 // Test a very broken version of multiarch that shipped in Ubuntu 11.04. 218 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 219 // RUN: --target=i386-unknown-linux \ 220 // RUN: --sysroot=%S/Inputs/ubuntu_11.04_multiarch_tree \ 221 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-11-04 %s 222 // CHECK-UBUNTU-11-04: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 223 // CHECK-UBUNTU-11-04: "{{.*}}/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 224 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5" 225 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../../i386-linux-gnu" 226 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu" 227 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/../../../.." 228 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/lib" 229 // CHECK-UBUNTU-11-04: "-L[[SYSROOT]]/usr/lib" 230 // 231 // Check multi arch support on Ubuntu 12.04 LTS. 232 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 233 // RUN: --target=arm-unknown-linux-gnueabihf \ 234 // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 235 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM-HF %s 236 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 237 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crt1.o" 238 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crti.o" 239 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtbegin.o" 240 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3" 241 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf" 242 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/lib/arm-linux-gnueabihf" 243 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabihf" 244 // CHECK-UBUNTU-12-04-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../.." 245 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3{{/|\\\\}}crtend.o" 246 // CHECK-UBUNTU-12-04-ARM-HF: "{{.*}}/usr/lib/gcc/arm-linux-gnueabihf/4.6.3/../../../arm-linux-gnueabihf{{/|\\\\}}crtn.o" 247 // 248 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabihf. 249 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 250 // RUN: --target=arm-linux-gnueabihf \ 251 // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 252 // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM-HF %s 253 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 254 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-dynamic-linker" "/lib/ld-linux-armhf.so.3" 255 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crt1.o" 256 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crti.o" 257 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtbegin.o" 258 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8" 259 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib" 260 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/lib/../lib" 261 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/../lib" 262 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib" 263 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8{{/|\\\\}}crtend.o" 264 // CHECK-X86-64-UBUNTU-13-10-ARM-HF: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib{{/|\\\\}}crtn.o" 265 // 266 // Check Ubuntu 13.10 on x86-64 targeting arm-linux-gnueabi. 267 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 268 // RUN: --target=arm-linux-gnueabi \ 269 // RUN: --sysroot=%S/Inputs/x86-64_ubuntu_13.10 \ 270 // RUN: | FileCheck --check-prefix=CHECK-X86-64-UBUNTU-13-10-ARM %s 271 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 272 // CHECK-X86-64-UBUNTU-13-10-ARM: "-dynamic-linker" "/lib/ld-linux.so.3" 273 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crt1.o" 274 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crti.o" 275 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtbegin.o" 276 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7" 277 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib" 278 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/lib/../lib" 279 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/../lib" 280 // CHECK-X86-64-UBUNTU-13-10-ARM: "-L[[SYSROOT]]/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib" 281 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7{{/|\\\\}}crtend.o" 282 // CHECK-X86-64-UBUNTU-13-10-ARM: "{{.*}}/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/lib/../lib{{/|\\\\}}crtn.o" 283 // 284 // Check fedora 18 on arm. 285 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 286 // RUN: --target=armv7-unknown-linux-gnueabihf \ 287 // RUN: --sysroot=%S/Inputs/fedora_18_tree \ 288 // RUN: | FileCheck --check-prefix=CHECK-FEDORA-18-ARM-HF %s 289 // CHECK-FEDORA-18-ARM-HF: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 290 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crt1.o" 291 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crti.o" 292 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtbegin.o" 293 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2" 294 // CHECK-FEDORA-18-ARM-HF: "-L[[SYSROOT]]/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib" 295 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2{{/|\\\\}}crtend.o" 296 // CHECK-FEDORA-18-ARM-HF: "{{.*}}/usr/lib/gcc/armv7hl-redhat-linux-gnueabi/4.7.2/../../../../lib{{/|\\\\}}crtn.o" 297 // 298 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 299 // RUN: --target=arm-unknown-linux-gnueabi \ 300 // RUN: --sysroot=%S/Inputs/ubuntu_12.04_LTS_multiarch_tree \ 301 // RUN: | FileCheck --check-prefix=CHECK-UBUNTU-12-04-ARM %s 302 // CHECK-UBUNTU-12-04-ARM: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 303 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crt1.o" 304 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crti.o" 305 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtbegin.o" 306 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1" 307 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi" 308 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/lib/arm-linux-gnueabi" 309 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/arm-linux-gnueabi" 310 // CHECK-UBUNTU-12-04-ARM: "-L[[SYSROOT]]/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../.." 311 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1{{/|\\\\}}crtend.o" 312 // CHECK-UBUNTU-12-04-ARM: "{{.*}}/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../arm-linux-gnueabi{{/|\\\\}}crtn.o" 313 // 314 // Test the setup that shipped in SUSE 10.3 on ppc64. 315 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 316 // RUN: --target=powerpc64-suse-linux \ 317 // RUN: --sysroot=%S/Inputs/suse_10.3_ppc64_tree \ 318 // RUN: | FileCheck --check-prefix=CHECK-SUSE-10-3-PPC64 %s 319 // CHECK-SUSE-10-3-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 320 // CHECK-SUSE-10-3-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64{{/|\\\\}}crtbegin.o" 321 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/64" 322 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-suse-linux/4.1.2/../../../../lib64" 323 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/lib/../lib64" 324 // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64" 325 // 326 // Check dynamic-linker for different archs 327 // RUN: %clang %s -### -o %t.o 2>&1 \ 328 // RUN: --target=arm-linux-gnueabi \ 329 // RUN: | FileCheck --check-prefix=CHECK-ARM %s 330 // CHECK-ARM: "{{.*}}ld{{(.exe)?}}" 331 // CHECK-ARM: "-m" "armelf_linux_eabi" 332 // CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3" 333 // 334 // RUN: %clang %s -### -o %t.o 2>&1 \ 335 // RUN: --target=arm-linux-gnueabihf \ 336 // RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s 337 // CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}" 338 // CHECK-ARM-HF: "-m" "armelf_linux_eabi" 339 // CHECK-ARM-HF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3" 340 // 341 // Check that we do not pass --hash-style=gnu and --hash-style=both to linker 342 // and provide correct path to the dynamic linker and emulation mode when build 343 // for MIPS platforms. 344 // RUN: %clang %s -### -o %t.o 2>&1 \ 345 // RUN: --target=mips-linux-gnu \ 346 // RUN: | FileCheck --check-prefix=CHECK-MIPS %s 347 // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" 348 // CHECK-MIPS: "-m" "elf32btsmip" 349 // CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 350 // CHECK-MIPS-NOT: "--hash-style={{gnu|both}}" 351 // RUN: %clang %s -### -o %t.o 2>&1 \ 352 // RUN: --target=mipsel-linux-gnu \ 353 // RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s 354 // CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}" 355 // CHECK-MIPSEL: "-m" "elf32ltsmip" 356 // CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1" 357 // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}" 358 // RUN: %clang %s -### -o %t.o 2>&1 \ 359 // RUN: --target=mips64-linux-gnu \ 360 // RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s 361 // CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}" 362 // CHECK-MIPS64: "-m" "elf64btsmip" 363 // CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1" 364 // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}" 365 // RUN: %clang %s -### -o %t.o 2>&1 \ 366 // RUN: --target=mips64el-linux-gnu \ 367 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s 368 // CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}" 369 // CHECK-MIPS64EL: "-m" "elf64ltsmip" 370 // CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1" 371 // CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}" 372 // RUN: %clang %s -### -o %t.o 2>&1 \ 373 // RUN: --target=mips64-linux-gnu -mabi=n32 \ 374 // RUN: | FileCheck --check-prefix=CHECK-MIPS64-N32 %s 375 // CHECK-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" 376 // CHECK-MIPS64-N32: "-m" "elf32btsmipn32" 377 // CHECK-MIPS64-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1" 378 // CHECK-MIPS64-N32-NOT: "--hash-style={{gnu|both}}" 379 // RUN: %clang %s -### -o %t.o 2>&1 \ 380 // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 381 // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL-N32 %s 382 // CHECK-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" 383 // CHECK-MIPS64EL-N32: "-m" "elf32ltsmipn32" 384 // CHECK-MIPS64EL-N32: "-dynamic-linker" "{{.*}}/lib32/ld.so.1" 385 // CHECK-MIPS64EL-N32-NOT: "--hash-style={{gnu|both}}" 386 // 387 // Thoroughly exercise the Debian multiarch environment. 388 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 389 // RUN: --target=i686-linux-gnu \ 390 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 391 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86 %s 392 // CHECK-DEBIAN-X86: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 393 // CHECK-DEBIAN-X86: "{{.*}}/usr/lib/gcc/i686-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 394 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5" 395 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../../i386-linux-gnu" 396 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/i386-linux-gnu" 397 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib/gcc/i686-linux-gnu/4.5/../../.." 398 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/lib" 399 // CHECK-DEBIAN-X86: "-L[[SYSROOT]]/usr/lib" 400 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 401 // RUN: --target=x86_64-linux-gnu \ 402 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 403 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-X86-64 %s 404 // CHECK-DEBIAN-X86-64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 405 // CHECK-DEBIAN-X86-64: "{{.*}}/usr/lib/gcc/x86_64-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 406 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5" 407 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../../x86_64-linux-gnu" 408 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/x86_64-linux-gnu" 409 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-linux-gnu/4.5/../../.." 410 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/lib" 411 // CHECK-DEBIAN-X86-64: "-L[[SYSROOT]]/usr/lib" 412 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 413 // RUN: --target=powerpc-linux-gnu \ 414 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 415 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC %s 416 // CHECK-DEBIAN-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 417 // CHECK-DEBIAN-PPC: "{{.*}}/usr/lib/gcc/powerpc-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 418 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5" 419 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../../powerpc-linux-gnu" 420 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/powerpc-linux-gnu" 421 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib/gcc/powerpc-linux-gnu/4.5/../../.." 422 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/lib" 423 // CHECK-DEBIAN-PPC: "-L[[SYSROOT]]/usr/lib" 424 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 425 // RUN: --target=powerpc64-linux-gnu \ 426 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 427 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-PPC64 %s 428 // CHECK-DEBIAN-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 429 // CHECK-DEBIAN-PPC64: "{{.*}}/usr/lib/gcc/powerpc64-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 430 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5" 431 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../../powerpc64-linux-gnu" 432 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/powerpc64-linux-gnu" 433 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib/gcc/powerpc64-linux-gnu/4.5/../../.." 434 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/lib" 435 // CHECK-DEBIAN-PPC64: "-L[[SYSROOT]]/usr/lib" 436 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 437 // RUN: --target=mips-linux-gnu \ 438 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 439 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS %s 440 // CHECK-DEBIAN-MIPS: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 441 // CHECK-DEBIAN-MIPS: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 442 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 443 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../../mips-linux-gnu" 444 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/mips-linux-gnu" 445 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 446 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/lib" 447 // CHECK-DEBIAN-MIPS: "-L[[SYSROOT]]/usr/lib" 448 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 449 // RUN: --target=mipsel-linux-gnu \ 450 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 451 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPSEL %s 452 // CHECK-DEBIAN-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 453 // CHECK-DEBIAN-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5{{/|\\\\}}crtbegin.o" 454 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 455 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../../mipsel-linux-gnu" 456 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/mipsel-linux-gnu" 457 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 458 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/lib" 459 // CHECK-DEBIAN-MIPSEL: "-L[[SYSROOT]]/usr/lib" 460 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 461 // RUN: --target=mips64-linux-gnu \ 462 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 463 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64 %s 464 // CHECK-DEBIAN-MIPS64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 465 // CHECK-DEBIAN-MIPS64: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o" 466 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/64" 467 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 468 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 469 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/lib" 470 // CHECK-DEBIAN-MIPS64: "-L[[SYSROOT]]/usr/lib" 471 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 472 // RUN: --target=mips64el-linux-gnu \ 473 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 474 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL %s 475 // CHECK-DEBIAN-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 476 // CHECK-DEBIAN-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/64{{/|\\\\}}crtbegin.o" 477 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/64" 478 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 479 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 480 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/lib" 481 // CHECK-DEBIAN-MIPS64EL: "-L[[SYSROOT]]/usr/lib" 482 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 483 // RUN: --target=mips64-linux-gnu -mabi=n32 \ 484 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 485 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64-N32 %s 486 // CHECK-DEBIAN-MIPS64-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 487 // CHECK-DEBIAN-MIPS64-N32: "{{.*}}/usr/lib/gcc/mips-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o" 488 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/n32" 489 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5" 490 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib/gcc/mips-linux-gnu/4.5/../../.." 491 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/lib" 492 // CHECK-DEBIAN-MIPS64-N32: "-L[[SYSROOT]]/usr/lib" 493 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 494 // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 495 // RUN: --sysroot=%S/Inputs/debian_multiarch_tree \ 496 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-MIPS64EL-N32 %s 497 // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 498 // CHECK-DEBIAN-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.5/n32{{/|\\\\}}crtbegin.o" 499 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/n32" 500 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5" 501 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.5/../../.." 502 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/lib" 503 // CHECK-DEBIAN-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib" 504 // 505 // Test linker invocation on Android. 506 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 507 // RUN: --target=arm-linux-androideabi \ 508 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 509 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 510 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 511 // RUN: --target=arm-linux-android \ 512 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 513 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 514 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 515 // RUN: --target=mipsel-linux-android \ 516 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 517 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 518 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 519 // RUN: --target=i386-linux-android \ 520 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 521 // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s 522 // CHECK-ANDROID: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 523 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 524 // CHECK-ANDROID: "-L[[SYSROOT]]/usr/lib" 525 // CHECK-ANDROID-NOT: "gcc_s" 526 // CHECK-ANDROID: "-lgcc" 527 // CHECK-ANDROID: "-ldl" 528 // CHECK-ANDROID-NOT: "gcc_s" 529 // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o" 530 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 531 // RUN: --target=arm-linux-androideabi \ 532 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 533 // RUN: -shared \ 534 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 535 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 536 // RUN: --target=arm-linux-android \ 537 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 538 // RUN: -shared \ 539 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 540 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 541 // RUN: --target=mipsel-linux-android \ 542 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 543 // RUN: -shared \ 544 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 545 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 546 // RUN: --target=i386-linux-android \ 547 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 548 // RUN: -shared \ 549 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s 550 // CHECK-ANDROID-SO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 551 // CHECK-ANDROID-SO: "-Bsymbolic" 552 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtbegin_so.o" 553 // CHECK-ANDROID-SO: "-L[[SYSROOT]]/usr/lib" 554 // CHECK-ANDROID-SO-NOT: "gcc_s" 555 // CHECK-ANDROID-SO: "-lgcc" 556 // CHECK-ANDROID-SO: "-ldl" 557 // CHECK-ANDROID-SO-NOT: "gcc_s" 558 // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o" 559 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 560 // RUN: --target=arm-linux-androideabi \ 561 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 562 // RUN: -static \ 563 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 564 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 565 // RUN: --target=arm-linux-android \ 566 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 567 // RUN: -static \ 568 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 569 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 570 // RUN: --target=mipsel-linux-android \ 571 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 572 // RUN: -static \ 573 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 574 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 575 // RUN: --target=i386-linux-android \ 576 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 577 // RUN: -static \ 578 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s 579 // CHECK-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 580 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtbegin_static.o" 581 // CHECK-ANDROID-STATIC: "-L[[SYSROOT]]/usr/lib" 582 // CHECK-ANDROID-STATIC-NOT: "gcc_s" 583 // CHECK-ANDROID-STATIC: "-lgcc" 584 // CHECK-ANDROID-STATIC-NOT: "-ldl" 585 // CHECK-ANDROID-STATIC-NOT: "gcc_s" 586 // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o" 587 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 588 // RUN: --target=arm-linux-androideabi \ 589 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 590 // RUN: -pie \ 591 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 592 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 593 // RUN: --target=arm-linux-android \ 594 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 595 // RUN: -pie \ 596 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 597 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 598 // RUN: --target=mipsel-linux-android \ 599 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 600 // RUN: -pie \ 601 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 602 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 603 // RUN: --target=i386-linux-android \ 604 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 605 // RUN: -pie \ 606 // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s 607 // CHECK-ANDROID-PIE: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 608 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtbegin_dynamic.o" 609 // CHECK-ANDROID-PIE: "-L[[SYSROOT]]/usr/lib" 610 // CHECK-ANDROID-PIE-NOT: "gcc_s" 611 // CHECK-ANDROID-PIE: "-lgcc" 612 // CHECK-ANDROID-PIE-NOT: "gcc_s" 613 // CHECK-ANDROID-PIE: "{{.*}}{{/|\\\\}}crtend_android.o" 614 // 615 // Check linker invocation on Debian 6 MIPS 32/64-bit. 616 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 617 // RUN: --target=mipsel-linux-gnu \ 618 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 619 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPSEL %s 620 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 621 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crt1.o" 622 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib{{/|\\\\}}crti.o" 623 // CHECK-DEBIAN-ML-MIPSEL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4{{/|\\\\}}crtbegin.o" 624 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4" 625 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib" 626 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib/../lib" 627 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/../lib" 628 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 629 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/lib" 630 // CHECK-DEBIAN-ML-MIPSEL: "-L[[SYSROOT]]/usr/lib" 631 // 632 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 633 // RUN: --target=mips64el-linux-gnu \ 634 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 635 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL %s 636 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 637 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crt1.o" 638 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64{{/|\\\\}}crti.o" 639 // CHECK-DEBIAN-ML-MIPS64EL: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/64{{/|\\\\}}crtbegin.o" 640 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/64" 641 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib64" 642 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib/../lib64" 643 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/../lib64" 644 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 645 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/lib" 646 // CHECK-DEBIAN-ML-MIPS64EL: "-L[[SYSROOT]]/usr/lib" 647 // 648 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 649 // RUN: --target=mips64el-linux-gnu -mabi=n32 \ 650 // RUN: --sysroot=%S/Inputs/debian_6_mips_tree \ 651 // RUN: | FileCheck --check-prefix=CHECK-DEBIAN-ML-MIPS64EL-N32 %s 652 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 653 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crt1.o" 654 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32{{/|\\\\}}crti.o" 655 // CHECK-DEBIAN-ML-MIPS64EL-N32: "{{.*}}/usr/lib/gcc/mipsel-linux-gnu/4.4/n32{{/|\\\\}}crtbegin.o" 656 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/n32" 657 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../../../lib32" 658 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib/../lib32" 659 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/../lib32" 660 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib/gcc/mipsel-linux-gnu/4.4/../../.." 661 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/lib" 662 // CHECK-DEBIAN-ML-MIPS64EL-N32: "-L[[SYSROOT]]/usr/lib" 663 // 664 // Test linker invocation for Freescale SDK (OpenEmbedded). 665 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 666 // RUN: --target=powerpc-fsl-linux \ 667 // RUN: --sysroot=%S/Inputs/freescale_ppc_tree \ 668 // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC %s 669 // CHECK-FSL-PPC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 670 // CHECK-FSL-PPC: "-m" "elf32ppclinux" 671 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crt1.o" 672 // CHECK-FSL-PPC: "{{.*}}{{/|\\\\}}crtbegin.o" 673 // CHECK-FSL-PPC: "-L[[SYSROOT]]/usr/lib" 674 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 675 // RUN: --target=powerpc64-fsl-linux \ 676 // RUN: --sysroot=%S/Inputs/freescale_ppc64_tree \ 677 // RUN: | FileCheck --check-prefix=CHECK-FSL-PPC64 %s 678 // CHECK-FSL-PPC64: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" 679 // CHECK-FSL-PPC64: "-m" "elf64ppc" 680 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crt1.o" 681 // CHECK-FSL-PPC64: "{{.*}}{{/|\\\\}}crtbegin.o" 682 // CHECK-FSL-PPC64: "-L[[SYSROOT]]/usr/lib64/powerpc64-fsl-linux/4.6.2/../.." 683 // 684 // Check that crtfastmath.o is linked with -ffast-math. 685 // RUN: %clang --target=x86_64-unknown-linux -### %s \ 686 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 687 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 688 // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math \ 689 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 690 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 691 // RUN: %clang --target=x86_64-unknown-linux -### %s -funsafe-math-optimizations\ 692 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 693 // RUN: | FileCheck --check-prefix=CHECK-CRTFASTMATH %s 694 // RUN: %clang --target=x86_64-unknown-linux -### %s -ffast-math -fno-fast-math \ 695 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 696 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 697 // We don't have crtfastmath.o in the i386 tree, use it to check that file 698 // detection works. 699 // RUN: %clang --target=i386-unknown-linux -### %s -ffast-math \ 700 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \ 701 // RUN: | FileCheck --check-prefix=CHECK-NOCRTFASTMATH %s 702 // CHECK-CRTFASTMATH: usr/lib/gcc/x86_64-unknown-linux/4.6.0{{/|\\\\}}crtfastmath.o 703 // CHECK-NOCRTFASTMATH-NOT: crtfastmath.o 704 705 // Check that we link in gcrt1.o when compiling with -pg 706 // RUN: %clang -pg --target=x86_64-unknown-linux -### %s \ 707 // RUN: --sysroot=%S/Inputs/basic_linux_tree 2>& 1 \ 708 // RUN: | FileCheck --check-prefix=CHECK-PG %s 709 // CHECK-PG: gcrt1.o 710