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