1*67e74705SXin Li // ----------------------------------------------------------------------------- 2*67e74705SXin Li // Test standard include paths 3*67e74705SXin Li // ----------------------------------------------------------------------------- 4*67e74705SXin Li 5*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 6*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 7*67e74705SXin Li // RUN: %s 2>&1 \ 8*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK000 %s 9*67e74705SXin Li // CHECK000: "-cc1" {{.*}} "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include" 10*67e74705SXin Li 11*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf \ 12*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 13*67e74705SXin Li // RUN: %s 2>&1 \ 14*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK001 %s 15*67e74705SXin Li // CHECK001: "-cc1" {{.*}} "-internal-isystem" "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include/c++" 16*67e74705SXin Li // CHECK001: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include" 17*67e74705SXin Li 18*67e74705SXin Li // ----------------------------------------------------------------------------- 19*67e74705SXin Li // Test -nostdinc, -nostdlibinc, -nostdinc++ 20*67e74705SXin Li // ----------------------------------------------------------------------------- 21*67e74705SXin Li 22*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 23*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 24*67e74705SXin Li // RUN: -nostdinc \ 25*67e74705SXin Li // RUN: %s 2>&1 \ 26*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK010 %s 27*67e74705SXin Li // CHECK010: "-cc1" 28*67e74705SXin Li // CHECK010-NOT: "-internal-externc-isystem" 29*67e74705SXin Li 30*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 31*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 32*67e74705SXin Li // RUN: -nostdlibinc \ 33*67e74705SXin Li // RUN: %s 2>&1 \ 34*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK011 %s 35*67e74705SXin Li // CHECK011: "-cc1" 36*67e74705SXin Li // CHECK011-NOT: "-internal-externc-isystem" 37*67e74705SXin Li 38*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf \ 39*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 40*67e74705SXin Li // RUN: -nostdinc++ \ 41*67e74705SXin Li // RUN: %s 2>&1 \ 42*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK012 %s 43*67e74705SXin Li // CHECK012: "-cc1" 44*67e74705SXin Li // CHECK012-NOT: "-internal-isystem" 45*67e74705SXin Li // CHECK012-DAG: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include" 46*67e74705SXin Li 47*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf -fno-integrated-as \ 48*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \ 49*67e74705SXin Li // RUN: --gcc-toolchain="" \ 50*67e74705SXin Li // RUN: -nostdlibinc \ 51*67e74705SXin Li // RUN: %s 2>&1 \ 52*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK013 %s 53*67e74705SXin Li // CHECK013: "-cc1" 54*67e74705SXin Li // CHECK013-NOT: "-internal-isystem" 55*67e74705SXin Li // CHECK013-NOT: "-internal-externc-isystem" 56*67e74705SXin Li 57*67e74705SXin Li // ----------------------------------------------------------------------------- 58*67e74705SXin Li // Test -mcpu=<cpuname> -mv<number> 59*67e74705SXin Li // ----------------------------------------------------------------------------- 60*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 61*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 62*67e74705SXin Li // RUN: -mcpu=hexagonv4 \ 63*67e74705SXin Li // RUN: %s 2>&1 \ 64*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK020 %s 65*67e74705SXin Li // CHECK020: "-cc1" {{.*}} "-target-cpu" "hexagonv4" 66*67e74705SXin Li // CHECK020: hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v4/crt0 67*67e74705SXin Li 68*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 69*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 70*67e74705SXin Li // RUN: -mcpu=hexagonv5 \ 71*67e74705SXin Li // RUN: %s 2>&1 \ 72*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK021 %s 73*67e74705SXin Li // CHECK021: "-cc1" {{.*}} "-target-cpu" "hexagonv5" 74*67e74705SXin Li // CHECK021: hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v5/crt0 75*67e74705SXin Li 76*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 77*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 78*67e74705SXin Li // RUN: -mcpu=hexagonv55 \ 79*67e74705SXin Li // RUN: %s 2>&1 \ 80*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK022 %s 81*67e74705SXin Li // CHECK022: "-cc1" {{.*}} "-target-cpu" "hexagonv55" 82*67e74705SXin Li // CHECK022: hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v55/crt0 83*67e74705SXin Li 84*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 85*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 86*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 87*67e74705SXin Li // RUN: %s 2>&1 \ 88*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK023 %s 89*67e74705SXin Li // CHECK023: "-cc1" {{.*}} "-target-cpu" "hexagonv60" 90*67e74705SXin Li // CHECK023: hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0 91*67e74705SXin Li 92*67e74705SXin Li // ----------------------------------------------------------------------------- 93*67e74705SXin Li // Test Linker related args 94*67e74705SXin Li // ----------------------------------------------------------------------------- 95*67e74705SXin Li 96*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 97*67e74705SXin Li // Defaults for C 98*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 99*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 100*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 101*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 102*67e74705SXin Li // RUN: %s 2>&1 \ 103*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK030 %s 104*67e74705SXin Li // CHECK030: "-cc1" 105*67e74705SXin Li // CHECK030-NEXT: hexagon-link 106*67e74705SXin Li // CHECK030-NOT: "-static" 107*67e74705SXin Li // CHECK030-NOT: "-shared" 108*67e74705SXin Li // CHECK030: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o" 109*67e74705SXin Li // CHECK030: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 110*67e74705SXin Li // CHECK030: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 111*67e74705SXin Li // CHECK030: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 112*67e74705SXin Li // CHECK030: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 113*67e74705SXin Li // CHECK030: "{{[^"]+}}.o" 114*67e74705SXin Li // CHECK030: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group" 115*67e74705SXin Li // CHECK030: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 116*67e74705SXin Li 117*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 118*67e74705SXin Li // Defaults for C++ 119*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 120*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf \ 121*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 122*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 123*67e74705SXin Li // RUN: %s 2>&1 \ 124*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK031 %s 125*67e74705SXin Li // CHECK031: "-cc1" 126*67e74705SXin Li // CHECK031-NEXT: hexagon-link 127*67e74705SXin Li // CHECK031-NOT: "-static" 128*67e74705SXin Li // CHECK031-NOT: "-shared" 129*67e74705SXin Li // CHECK031: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o" 130*67e74705SXin Li // CHECK031: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 131*67e74705SXin Li // CHECK031: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 132*67e74705SXin Li // CHECK031: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 133*67e74705SXin Li // CHECK031: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 134*67e74705SXin Li // CHECK031: "{{[^"]+}}.o" 135*67e74705SXin Li // CHECK031: "-lstdc++" "-lm" 136*67e74705SXin Li // CHECK031: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group" 137*67e74705SXin Li // CHECK031: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 138*67e74705SXin Li 139*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 140*67e74705SXin Li // Additional Libraries (-L) 141*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 142*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 143*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 144*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 145*67e74705SXin Li // RUN: -Lone -L two -L three \ 146*67e74705SXin Li // RUN: %s 2>&1 \ 147*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK032 %s 148*67e74705SXin Li // CHECK032: "-cc1" 149*67e74705SXin Li // CHECK032-NEXT: hexagon-link 150*67e74705SXin Li // CHECK032-NOT: "-static" 151*67e74705SXin Li // CHECK032-NOT: "-shared" 152*67e74705SXin Li // CHECK032: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o" 153*67e74705SXin Li // CHECK032: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 154*67e74705SXin Li // CHECK032: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 155*67e74705SXin Li // CHECK032: "-Lone" "-Ltwo" "-Lthree" 156*67e74705SXin Li // CHECK032: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 157*67e74705SXin Li // CHECK032: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 158*67e74705SXin Li // CHECK032: "{{[^"]+}}.o" 159*67e74705SXin Li // CHECK032: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group" 160*67e74705SXin Li // CHECK032: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 161*67e74705SXin Li 162*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 163*67e74705SXin Li // -static, -shared 164*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 165*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 166*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 167*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 168*67e74705SXin Li // RUN: -static \ 169*67e74705SXin Li // RUN: %s 2>&1 \ 170*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK033 %s 171*67e74705SXin Li // CHECK033: "-cc1" 172*67e74705SXin Li // CHECK033-NEXT: hexagon-link 173*67e74705SXin Li // CHECK033: "-static" 174*67e74705SXin Li // CHECK033: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o" 175*67e74705SXin Li // CHECK033: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 176*67e74705SXin Li // CHECK033: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 177*67e74705SXin Li // CHECK033: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 178*67e74705SXin Li // CHECK033: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 179*67e74705SXin Li // CHECK033: "{{[^"]+}}.o" 180*67e74705SXin Li // CHECK033: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group" 181*67e74705SXin Li // CHECK033: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 182*67e74705SXin Li 183*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 184*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 185*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 186*67e74705SXin Li // RUN: -shared \ 187*67e74705SXin Li // RUN: %s 2>&1 \ 188*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK034 %s 189*67e74705SXin Li // CHECK034: "-cc1" 190*67e74705SXin Li // CHECK034-NEXT: hexagon-link 191*67e74705SXin Li // CHECK034: "-shared" "-call_shared" 192*67e74705SXin Li // CHECK034-NOT: crt0_standalone.o 193*67e74705SXin Li // CHECK034-NOT: crt0.o 194*67e74705SXin Li // CHECK034: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/pic/initS.o" 195*67e74705SXin Li // CHECK034: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0" 196*67e74705SXin Li // CHECK034: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 197*67e74705SXin Li // CHECK034: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 198*67e74705SXin Li // CHECK034: "{{[^"]+}}.o" 199*67e74705SXin Li // CHECK034: "--start-group" 200*67e74705SXin Li // CHECK034-NOT: "-lstandalone" 201*67e74705SXin Li // CHECK034-NOT: "-lc" 202*67e74705SXin Li // CHECK034: "-lgcc" 203*67e74705SXin Li // CHECK034: "--end-group" 204*67e74705SXin Li // CHECK034: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/pic/finiS.o" 205*67e74705SXin Li 206*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 207*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 208*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 209*67e74705SXin Li // RUN: -shared \ 210*67e74705SXin Li // RUN: -static \ 211*67e74705SXin Li // RUN: %s 2>&1 \ 212*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK035 %s 213*67e74705SXin Li // CHECK035: "-cc1" 214*67e74705SXin Li // CHECK035-NEXT: hexagon-link 215*67e74705SXin Li // CHECK035: "-shared" "-call_shared" "-static" 216*67e74705SXin Li // CHECK035-NOT: crt0_standalone.o 217*67e74705SXin Li // CHECK035-NOT: crt0.o 218*67e74705SXin Li // CHECK035: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/init.o" 219*67e74705SXin Li // CHECK035: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0" 220*67e74705SXin Li // CHECK035: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 221*67e74705SXin Li // CHECK035: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 222*67e74705SXin Li // CHECK035: "{{[^"]+}}.o" 223*67e74705SXin Li // CHECK035: "--start-group" 224*67e74705SXin Li // CHECK035-NOT: "-lstandalone" 225*67e74705SXin Li // CHECK035-NOT: "-lc" 226*67e74705SXin Li // CHECK035: "-lgcc" 227*67e74705SXin Li // CHECK035: "--end-group" 228*67e74705SXin Li // CHECK035: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/fini.o" 229*67e74705SXin Li 230*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 231*67e74705SXin Li // -nostdlib, -nostartfiles, -nodefaultlibs 232*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 233*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf \ 234*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 235*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 236*67e74705SXin Li // RUN: -nostdlib \ 237*67e74705SXin Li // RUN: %s 2>&1 \ 238*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK036 %s 239*67e74705SXin Li // CHECK036: "-cc1" 240*67e74705SXin Li // CHECK036-NEXT: hexagon-link 241*67e74705SXin Li // CHECK036-NOT: crt0_standalone.o 242*67e74705SXin Li // CHECK036-NOT: crt0.o 243*67e74705SXin Li // CHECK036-NOT: init.o 244*67e74705SXin Li // CHECK036: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 245*67e74705SXin Li // CHECK036: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 246*67e74705SXin Li // CHECK036: "{{[^"]+}}.o" 247*67e74705SXin Li // CHECK036-NOT: "-lstdc++" 248*67e74705SXin Li // CHECK036-NOT: "-lm" 249*67e74705SXin Li // CHECK036-NOT: "--start-group" 250*67e74705SXin Li // CHECK036-NOT: "-lstandalone" 251*67e74705SXin Li // CHECK036-NOT: "-lc" 252*67e74705SXin Li // CHECK036-NOT: "-lgcc" 253*67e74705SXin Li // CHECK036-NOT: "--end-group" 254*67e74705SXin Li // CHECK036-NOT: fini.o 255*67e74705SXin Li 256*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf \ 257*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 258*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 259*67e74705SXin Li // RUN: -nostartfiles \ 260*67e74705SXin Li // RUN: %s 2>&1 \ 261*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK037 %s 262*67e74705SXin Li // CHECK037: "-cc1" 263*67e74705SXin Li // CHECK037-NEXT: hexagon-link 264*67e74705SXin Li // CHECK037-NOT: crt0_standalone.o 265*67e74705SXin Li // CHECK037-NOT: crt0.o 266*67e74705SXin Li // CHECK037-NOT: init.o 267*67e74705SXin Li // CHECK037: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 268*67e74705SXin Li // CHECK037: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 269*67e74705SXin Li // CHECK037: "{{[^"]+}}.o" 270*67e74705SXin Li // CHECK037: "-lstdc++" 271*67e74705SXin Li // CHECK037: "-lm" 272*67e74705SXin Li // CHECK037: "--start-group" 273*67e74705SXin Li // CHECK037: "-lstandalone" 274*67e74705SXin Li // CHECK037: "-lc" 275*67e74705SXin Li // CHECK037: "-lgcc" 276*67e74705SXin Li // CHECK037: "--end-group" 277*67e74705SXin Li // CHECK037-NOT: fini.o 278*67e74705SXin Li 279*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf \ 280*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 281*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 282*67e74705SXin Li // RUN: -nodefaultlibs \ 283*67e74705SXin Li // RUN: %s 2>&1 \ 284*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK038 %s 285*67e74705SXin Li // CHECK038: "-cc1" 286*67e74705SXin Li // CHECK038-NEXT: hexagon-link 287*67e74705SXin Li // CHECK038: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o" 288*67e74705SXin Li // CHECK038: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 289*67e74705SXin Li // CHECK038: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 290*67e74705SXin Li // CHECK038: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 291*67e74705SXin Li // CHECK038: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 292*67e74705SXin Li // CHECK038: "{{[^"]+}}.o" 293*67e74705SXin Li // CHECK038-NOT: "-lstdc++" 294*67e74705SXin Li // CHECK038-NOT: "-lm" 295*67e74705SXin Li // CHECK038-NOT: "--start-group" 296*67e74705SXin Li // CHECK038-NOT: "-lstandalone" 297*67e74705SXin Li // CHECK038-NOT: "-lc" 298*67e74705SXin Li // CHECK038-NOT: "-lgcc" 299*67e74705SXin Li // CHECK038-NOT: "--end-group" 300*67e74705SXin Li // CHECK038: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 301*67e74705SXin Li 302*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 303*67e74705SXin Li // -moslib 304*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 305*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 306*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 307*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 308*67e74705SXin Li // RUN: -moslib=first -moslib=second \ 309*67e74705SXin Li // RUN: %s 2>&1 \ 310*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK039 %s 311*67e74705SXin Li // CHECK039: "-cc1" 312*67e74705SXin Li // CHECK039-NEXT: hexagon-link 313*67e74705SXin Li // CHECK039-NOT: "-static" 314*67e74705SXin Li // CHECK039-NOT: "-shared" 315*67e74705SXin Li // CHECK039-NOT: crt0_standalone.o 316*67e74705SXin Li // CHECK039: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 317*67e74705SXin Li // CHECK039: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 318*67e74705SXin Li // CHECK039: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 319*67e74705SXin Li // CHECK039: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 320*67e74705SXin Li // CHECK039: "{{[^"]+}}.o" 321*67e74705SXin Li // CHECK039: "--start-group" 322*67e74705SXin Li // CHECK039: "-lfirst" "-lsecond" 323*67e74705SXin Li // CHECK039-NOT: "-lstandalone" 324*67e74705SXin Li // CHECK039: "-lc" "-lgcc" "--end-group" 325*67e74705SXin Li // CHECK039: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 326*67e74705SXin Li 327*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 328*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 329*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 330*67e74705SXin Li // RUN: -moslib=first -moslib=second -moslib=standalone \ 331*67e74705SXin Li // RUN: %s 2>&1 \ 332*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK03A %s 333*67e74705SXin Li // CHECK03A: "-cc1" 334*67e74705SXin Li // CHECK03A-NEXT: hexagon-link 335*67e74705SXin Li // CHECK03A-NOT: "-static" 336*67e74705SXin Li // CHECK03A-NOT: "-shared" 337*67e74705SXin Li // CHECK03A: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o" 338*67e74705SXin Li // CHECK03A: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 339*67e74705SXin Li // CHECK03A: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 340*67e74705SXin Li // CHECK03A: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 341*67e74705SXin Li // CHECK03A: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 342*67e74705SXin Li // CHECK03A: "{{[^"]+}}.o" 343*67e74705SXin Li // CHECK03A: "--start-group" 344*67e74705SXin Li // CHECK03A: "-lfirst" "-lsecond" 345*67e74705SXin Li // CHECK03A: "-lstandalone" 346*67e74705SXin Li // CHECK03A: "-lc" "-lgcc" "--end-group" 347*67e74705SXin Li // CHECK03A: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 348*67e74705SXin Li 349*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 350*67e74705SXin Li // Other args to pass to linker 351*67e74705SXin Li // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 352*67e74705SXin Li // RUN: %clangxx -### -target hexagon-unknown-elf \ 353*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 354*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 355*67e74705SXin Li // RUN: -s \ 356*67e74705SXin Li // RUN: -Tbss 0xdead -Tdata 0xbeef -Ttext 0xcafe \ 357*67e74705SXin Li // RUN: -t \ 358*67e74705SXin Li // RUN: -e start_here \ 359*67e74705SXin Li // RUN: -uFoo -undefined Bar \ 360*67e74705SXin Li // RUN: %s 2>&1 \ 361*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK03B %s 362*67e74705SXin Li // CHECK03B: "-cc1" 363*67e74705SXin Li // CHECK03B-NEXT: hexagon-link 364*67e74705SXin Li // CHECK03B: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o" 365*67e74705SXin Li // CHECK03B: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o" 366*67e74705SXin Li // CHECK03B: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o" 367*67e74705SXin Li // CHECK03B: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60" 368*67e74705SXin Li // CHECK03B: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib" 369*67e74705SXin Li // CHECK03B: "-s" 370*67e74705SXin Li // CHECK03B: "-Tbss" "0xdead" "-Tdata" "0xbeef" "-Ttext" "0xcafe" 371*67e74705SXin Li // CHECK03B: "-t" 372*67e74705SXin Li // CHECK03B: "-u" "Foo" "-undefined" "Bar" 373*67e74705SXin Li // CHECK03B: "{{[^"]+}}.o" 374*67e74705SXin Li // CHECK03B: "-lstdc++" "-lm" 375*67e74705SXin Li // CHECK03B: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group" 376*67e74705SXin Li // CHECK03B: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o" 377*67e74705SXin Li 378*67e74705SXin Li // ----------------------------------------------------------------------------- 379*67e74705SXin Li // pic, small data threshold 380*67e74705SXin Li // ----------------------------------------------------------------------------- 381*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 382*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 383*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 384*67e74705SXin Li // RUN: %s 2>&1 \ 385*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK040 %s 386*67e74705SXin Li // CHECK040: "-cc1" 387*67e74705SXin Li // CHECK040-NEXT: hexagon-link 388*67e74705SXin Li // CHECK040-NOT: "-G{{[0-9]+}}" 389*67e74705SXin Li 390*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 391*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 392*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 393*67e74705SXin Li // RUN: -fpic \ 394*67e74705SXin Li // RUN: %s 2>&1 \ 395*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK041 %s 396*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 397*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 398*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 399*67e74705SXin Li // RUN: -fPIC \ 400*67e74705SXin Li // RUN: %s 2>&1 \ 401*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK041 %s 402*67e74705SXin Li // CHECK041: "-cc1" 403*67e74705SXin Li // CHECK041-NOT: "-mrelocation-model" "static" 404*67e74705SXin Li // CHECK041: "-pic-level" "{{[12]}}" 405*67e74705SXin Li // CHECK041: "-mllvm" "-hexagon-small-data-threshold=0" 406*67e74705SXin Li // CHECK041-NEXT: hexagon-link 407*67e74705SXin Li // CHECK041: "-G0" 408*67e74705SXin Li 409*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as \ 410*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 411*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 412*67e74705SXin Li // RUN: -G=8 \ 413*67e74705SXin Li // RUN: %s 2>&1 \ 414*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK042 %s 415*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as \ 416*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 417*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 418*67e74705SXin Li // RUN: -G 8 \ 419*67e74705SXin Li // RUN: %s 2>&1 \ 420*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK042 %s 421*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as \ 422*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 423*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 424*67e74705SXin Li // RUN: -msmall-data-threshold=8 \ 425*67e74705SXin Li // RUN: %s 2>&1 \ 426*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK042 %s 427*67e74705SXin Li // CHECK042: "-cc1" 428*67e74705SXin Li // CHECK042: "-mrelocation-model" "static" 429*67e74705SXin Li // CHECK042: "-mllvm" "-hexagon-small-data-threshold=8" 430*67e74705SXin Li // CHECK042-NEXT: llvm-mc 431*67e74705SXin Li // CHECK042: "-gpsize=8" 432*67e74705SXin Li // CHECK042-NEXT: hexagon-link 433*67e74705SXin Li // CHECK042: "-G8" 434*67e74705SXin Li 435*67e74705SXin Li // ----------------------------------------------------------------------------- 436*67e74705SXin Li // pie 437*67e74705SXin Li // ----------------------------------------------------------------------------- 438*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 439*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 440*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 441*67e74705SXin Li // RUN: -pie \ 442*67e74705SXin Li // RUN: %s 2>&1 \ 443*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK050 %s 444*67e74705SXin Li // CHECK050: "-cc1" 445*67e74705SXin Li // CHECK050-NEXT: hexagon-link 446*67e74705SXin Li // CHECK050: "-pie" 447*67e74705SXin Li 448*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 449*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 450*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 451*67e74705SXin Li // RUN: -pie -shared \ 452*67e74705SXin Li // RUN: %s 2>&1 \ 453*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK051 %s 454*67e74705SXin Li // CHECK051: "-cc1" 455*67e74705SXin Li // CHECK051-NEXT: hexagon-link 456*67e74705SXin Li // CHECK051-NOT: "-pie" 457*67e74705SXin Li 458*67e74705SXin Li // ----------------------------------------------------------------------------- 459*67e74705SXin Li // Test Assembler related args 460*67e74705SXin Li // ----------------------------------------------------------------------------- 461*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as \ 462*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 463*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 464*67e74705SXin Li // RUN: -gdwarf-2 \ 465*67e74705SXin Li // RUN: -Wa,--noexecstack,--trap \ 466*67e74705SXin Li // RUN: -Xassembler --keep-locals \ 467*67e74705SXin Li // RUN: %s 2>&1 \ 468*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK060 %s 469*67e74705SXin Li // CHECK060: "-cc1" 470*67e74705SXin Li // CHECK060-NEXT: llvm-mc 471*67e74705SXin Li // CHECK060: "--noexecstack" "--trap" "--keep-locals" 472*67e74705SXin Li // CHECK060-NEXT: hexagon-link 473*67e74705SXin Li 474*67e74705SXin Li // ----------------------------------------------------------------------------- 475*67e74705SXin Li // Misc Defaults 476*67e74705SXin Li // ----------------------------------------------------------------------------- 477*67e74705SXin Li // RUN: %clang -### -target hexagon-unknown-elf \ 478*67e74705SXin Li // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ 479*67e74705SXin Li // RUN: -mcpu=hexagonv60 \ 480*67e74705SXin Li // RUN: %s 2>&1 \ 481*67e74705SXin Li // RUN: | FileCheck -check-prefix=CHECK070 %s 482*67e74705SXin Li // CHECK070: "-cc1" 483*67e74705SXin Li // CHECK070: "-Wreturn-type" 484