[clang] [clang][hexagon] Add support for -nolibc (PR #67515)

via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 27 21:17:44 PDT 2023


https://github.com/androm3da updated https://github.com/llvm/llvm-project/pull/67515

>From 87db8df7385b87f92f3bba2f80041e79039de78e Mon Sep 17 00:00:00 2001
From: Brian Cain <bcain at quicinc.com>
Date: Wed, 27 Sep 2023 21:07:05 -0700
Subject: [PATCH 1/2] [clang][hexagon] Change driver tests to "--target="

`-target` has been deprecated, we can switch the tests to using `--target`
instead.
---
 clang/test/Driver/hexagon-hvx-ieee-fp.c     |   6 +-
 clang/test/Driver/hexagon-hvx-qfloat.c      |   6 +-
 clang/test/Driver/hexagon-hvx.c             | 174 ++++++++++----------
 clang/test/Driver/hexagon-long-calls.c      |   6 +-
 clang/test/Driver/hexagon-memops.c          |   4 +-
 clang/test/Driver/hexagon-nvj.c             |   4 +-
 clang/test/Driver/hexagon-nvs.c             |   4 +-
 clang/test/Driver/hexagon-packets.c         |   4 +-
 clang/test/Driver/hexagon-toolchain-elf.c   |  86 +++++-----
 clang/test/Driver/hexagon-toolchain-linux.c |  20 +--
 clang/test/Driver/hexagon-vectorize.c       |   8 +-
 11 files changed, 161 insertions(+), 161 deletions(-)

diff --git a/clang/test/Driver/hexagon-hvx-ieee-fp.c b/clang/test/Driver/hexagon-hvx-ieee-fp.c
index 4166d640b6faa51..0e502941d62a999 100644
--- a/clang/test/Driver/hexagon-hvx-ieee-fp.c
+++ b/clang/test/Driver/hexagon-hvx-ieee-fp.c
@@ -2,13 +2,13 @@
 // Tests for the hvx ieee fp feature and errors.
 // -----------------------------------------------------------------------------
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv68 -mhvx -mhvx-ieee-fp \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv68 -mhvx -mhvx-ieee-fp \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-IEEEFP %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv66 -mhvx=v68 -mhvx-ieee-fp \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv66 -mhvx=v68 -mhvx-ieee-fp \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-IEEEFP %s
 // CHECK-IEEEFP: "-target-feature" "+hvx-ieee-fp"
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv68 -mhvx -mhvx-ieee-fp \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv68 -mhvx -mhvx-ieee-fp \
 // RUN:  -mno-hvx-ieee-fp 2>&1 | FileCheck -check-prefix=CHECK-NO-IEEEFP %s
 // CHECK-NO-IEEEFP: "-target-feature" "-hvx-ieee-fp"
 
diff --git a/clang/test/Driver/hexagon-hvx-qfloat.c b/clang/test/Driver/hexagon-hvx-qfloat.c
index ac3de8ded16ebd6..f3662da040a8fcf 100644
--- a/clang/test/Driver/hexagon-hvx-qfloat.c
+++ b/clang/test/Driver/hexagon-hvx-qfloat.c
@@ -2,13 +2,13 @@
 // Tests for the hvx qfloat feature and errors.
 // -----------------------------------------------------------------------------
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv68 -mhvx -mhvx-qfloat \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv68 -mhvx -mhvx-qfloat \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-QFLOAT %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv66 -mhvx=v68 -mhvx-qfloat \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv66 -mhvx=v68 -mhvx-qfloat \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-QFLOAT %s
 // CHECK-QFLOAT: "-target-feature" "+hvx-qfloat"
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv68 -mhvx -mhvx-qfloat \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv68 -mhvx -mhvx-qfloat \
 // RUN:  -mno-hvx-qfloat 2>&1 | FileCheck -check-prefix=CHECK-NO-QFLOAT %s
 // CHECK-NO-QFLOAT: "-target-feature" "-hvx-qfloat"
 
diff --git a/clang/test/Driver/hexagon-hvx.c b/clang/test/Driver/hexagon-hvx.c
index b57cc22515c2979..d21d88701ba5eff 100644
--- a/clang/test/Driver/hexagon-hvx.c
+++ b/clang/test/Driver/hexagon-hvx.c
@@ -8,31 +8,31 @@
 // CHECK-HVX-ON-NOT:  "-target-feature" "-hvx
 // CHECK-HVX-OFF-NOT: "-target-feature" "+hvx
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv5 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv5 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv55 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv55 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv60 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv60 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv62 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv62 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv65 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv65 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv66 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv66 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv67 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv67 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv67t \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv67t \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv68 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv68 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv71 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv71 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv71t \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv71t \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv73 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv73 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
 
 // Infer HVX version from flag:
@@ -48,126 +48,126 @@
 // CHECK-HVX-V73: "-target-feature" "+hvxv73"
 
 // Direct version flag:
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v60 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v60 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V60 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v62 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v62 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V62 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v65 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v65 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V65 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v66 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v66 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V66 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v67 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v67 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V67 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v68 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v68 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V68 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v69 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v69 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V69 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v71 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v71 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V71 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v73 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v73 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V73 %s
 // Infer HVX version from CPU version:
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv60 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv60 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V60 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv62 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv62 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V62 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv65 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv65 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V65 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv66 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv66 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V66 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv67 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv67 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V67 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv67t -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv67t -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V67 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv68 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv68 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V68 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V69 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv71 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv71 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V71 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv73 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv73 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V73 %s
 
 // Direct version flag with different CPU version:
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v60 -mv62 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v60 -mv62 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V60 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v62 -mv65 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v62 -mv65 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V62 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v65 -mv66 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v65 -mv66 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V65 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v66 -mv67 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v66 -mv67 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V66 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v67 -mv68 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v67 -mv68 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V67 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v68 -mv69 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v68 -mv69 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V68 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v69 -mv71 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v69 -mv71 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V69 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v71 -mv73 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v71 -mv73 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V71 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v73 -mv60 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v73 -mv60 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V73 %s
 
 // Direct version flag with different CPU version and versionless -mhvx:
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v60 -mv62 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v60 -mv62 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V62 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v62 -mv65 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v62 -mv65 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V65 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v65 -mv66 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v65 -mv66 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V66 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v66 -mv67 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v66 -mv67 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V67 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v67 -mv68 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v67 -mv68 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V68 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v68 -mv69 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v68 -mv69 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V69 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v69 -mv71 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v69 -mv71 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V71 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v71 -mv73 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v71 -mv73 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V73 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v73 -mv60 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v73 -mv60 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V60 %s
 
 // Direct version flag with different CPU version, versionless -mhvx
 // and -mno-hvx. The -mno-hvx cancels -mhvx=, versionless -mhvx wins:
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v60 -mno-hvx -mv62 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v60 -mno-hvx -mv62 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V62 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v62 -mno-hvx -mv65 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v62 -mno-hvx -mv65 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V65 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v65 -mno-hvx -mv66 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v65 -mno-hvx -mv66 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V66 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v66 -mno-hvx -mv67 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v66 -mno-hvx -mv67 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V67 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v67 -mno-hvx -mv68 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v67 -mno-hvx -mv68 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V68 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v68 -mno-hvx -mv69 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v68 -mno-hvx -mv69 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V69 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v69 -mno-hvx -mv71 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v69 -mno-hvx -mv71 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V71 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v71 -mno-hvx -mv73 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v71 -mno-hvx -mv73 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V73 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v73 -mno-hvx -mv60 -mhvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v73 -mno-hvx -mv60 -mhvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V60 %s
 
 // Direct version flag with different CPU version, versionless -mhvx
 // and -mno-hvx. The -mno-hvx cancels versionless -mhvx, -mhvx= wins:
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv62 -mhvx -mno-hvx -mhvx=v60 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv62 -mhvx -mno-hvx -mhvx=v60 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V60 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv65 -mhvx -mno-hvx -mhvx=v62 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv65 -mhvx -mno-hvx -mhvx=v62 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V62 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv66 -mhvx -mno-hvx -mhvx=v65 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv66 -mhvx -mno-hvx -mhvx=v65 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V65 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv67 -mhvx -mno-hvx -mhvx=v66 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv67 -mhvx -mno-hvx -mhvx=v66 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V66 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv68 -mhvx -mno-hvx -mhvx=v67 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv68 -mhvx -mno-hvx -mhvx=v67 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V67 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mno-hvx -mhvx=v68 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mno-hvx -mhvx=v68 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V68 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv71 -mhvx -mno-hvx -mhvx=v69 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv71 -mhvx -mno-hvx -mhvx=v69 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V69 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv73 -mhvx -mno-hvx -mhvx=v71 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv73 -mhvx -mno-hvx -mhvx=v71 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V71 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv60 -mhvx -mno-hvx -mhvx=v73 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv60 -mhvx -mno-hvx -mhvx=v73 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-V73 %s
 
 // Infer HVX length from flag:
@@ -177,33 +177,33 @@
 // CHECK-HVX-L128: "-target-feature" "+hvx-length128b"
 // CHECK-HVX-L128-NOT: "-target-feature" "+hvx-length64b"
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx -mhvx-length=64b \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx -mhvx-length=64b \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L64 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx -mhvx-length=128b \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx -mhvx-length=128b \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L128 %s
 
 // Infer HVX length from HVX version:
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v60 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v60 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L64 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v62 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v62 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L64 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v65 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v65 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L64 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v66 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v66 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L128 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v67 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v67 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L128 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v68 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v68 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L128 %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v69 \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v69 \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-L128 %s
 
 // No HVX with trailing -mno-hvx
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mhvx=v69 -mno-hvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v69 -mno-hvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mno-hvx \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mno-hvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
 // RUN: not %clang -c %s -### --target=hexagon-unknown-elf -mhvx=v69 -mhvx-length=128b -mno-hvx \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-OFF %s
@@ -217,22 +217,22 @@
 // CHECK-HVX-IEEE-ON:        "-target-feature" "+hvx-ieee-fp"
 // CHECK-HVX-IEEE-OFF-NOT:   "-target-feature" "+hvx-ieee-fp"
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mhvx-qfloat \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mhvx-qfloat \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-QFLOAT-ON %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mno-hvx-qfloat \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mno-hvx-qfloat \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-QFLOAT-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mno-hvx-qfloat -mhvx-qfloat \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mno-hvx-qfloat -mhvx-qfloat \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-QFLOAT-ON %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mhvx-qfloat -mno-hvx-qfloat \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mhvx-qfloat -mno-hvx-qfloat \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-QFLOAT-OFF %s
 
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mhvx-ieee-fp \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mhvx-ieee-fp \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-IEEE-ON %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mno-hvx-ieee-fp \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mno-hvx-ieee-fp \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-IEEE-OFF %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mno-hvx-ieee-fp -mhvx-ieee-fp \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mno-hvx-ieee-fp -mhvx-ieee-fp \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-IEEE-ON %s
-// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv69 -mhvx -mhvx-ieee-fp -mno-hvx-ieee-fp \
+// RUN: %clang -c %s -### --target=hexagon-unknown-elf -mv69 -mhvx -mhvx-ieee-fp -mno-hvx-ieee-fp \
 // RUN:  2>&1 | FileCheck -check-prefix=CHECK-HVX-IEEE-OFF %s
 
 // HVX flags heed HVX:
diff --git a/clang/test/Driver/hexagon-long-calls.c b/clang/test/Driver/hexagon-long-calls.c
index e88922a3c236496..368ce8d0f742748 100644
--- a/clang/test/Driver/hexagon-long-calls.c
+++ b/clang/test/Driver/hexagon-long-calls.c
@@ -1,10 +1,10 @@
-// RUN: %clang -target hexagon -### %s 2>&1 \
+// RUN: %clang --target=hexagon -### %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-DEFAULT
 
-// RUN: %clang -target hexagon -### -mlong-calls %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mlong-calls %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-LONG-CALLS
 
-// RUN: %clang -target hexagon -### -mlong-calls -mno-long-calls %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mlong-calls -mno-long-calls %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-NO-LONG-CALLS
 
 // CHECK-DEFAULT-NOT: "-target-feature" "+long-calls"
diff --git a/clang/test/Driver/hexagon-memops.c b/clang/test/Driver/hexagon-memops.c
index e7a94286ffdad8a..b160fcc5ab93df5 100644
--- a/clang/test/Driver/hexagon-memops.c
+++ b/clang/test/Driver/hexagon-memops.c
@@ -1,7 +1,7 @@
-// RUN: %clang -target hexagon -### -mmemops %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mmemops %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-MEMOPS
 
-// RUN: %clang -target hexagon -### -mno-memops %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mno-memops %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-NO-MEMOPS
 
 // CHECK-MEMOPS: "-target-feature" "+memops"
diff --git a/clang/test/Driver/hexagon-nvj.c b/clang/test/Driver/hexagon-nvj.c
index 60d3839f83ac8fe..3f25f3bf2880c5b 100644
--- a/clang/test/Driver/hexagon-nvj.c
+++ b/clang/test/Driver/hexagon-nvj.c
@@ -1,7 +1,7 @@
-// RUN: %clang -target hexagon -### -mnvj %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mnvj %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-NVJ
 
-// RUN: %clang -target hexagon -### -mno-nvj %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mno-nvj %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-NO-NVJ
 
 // CHECK-NVJ: "-target-feature" "+nvj"
diff --git a/clang/test/Driver/hexagon-nvs.c b/clang/test/Driver/hexagon-nvs.c
index a0130e32c9fd022..89f1e91a75e2b91 100644
--- a/clang/test/Driver/hexagon-nvs.c
+++ b/clang/test/Driver/hexagon-nvs.c
@@ -1,7 +1,7 @@
-// RUN: %clang -target hexagon -### -mnvs %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mnvs %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-NVS
 
-// RUN: %clang -target hexagon -### -mno-nvs %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mno-nvs %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-NO-NVS
 
 // CHECK-NVS: "-target-feature" "+nvs"
diff --git a/clang/test/Driver/hexagon-packets.c b/clang/test/Driver/hexagon-packets.c
index 820c7314344f689..31521df2bdfe2e4 100644
--- a/clang/test/Driver/hexagon-packets.c
+++ b/clang/test/Driver/hexagon-packets.c
@@ -1,7 +1,7 @@
-// RUN: %clang -target hexagon -### -mpackets %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mpackets %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-PACKETS
 
-// RUN: %clang -target hexagon -### -mno-packets %s 2>&1 \
+// RUN: %clang --target=hexagon -### -mno-packets %s 2>&1 \
 // RUN:    | FileCheck %s -check-prefix CHECK-NO-PACKETS
 
 // CHECK-PACKETS: "-target-feature" "+packets"
diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c
index 039b87347436d51..e8987923cb3db77 100644
--- a/clang/test/Driver/hexagon-toolchain-elf.c
+++ b/clang/test/Driver/hexagon-toolchain-elf.c
@@ -2,13 +2,13 @@
 // Test standard include paths
 // -----------------------------------------------------------------------------
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   %s 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK000 %s
 // CHECK000: "-cc1" {{.*}} "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include"
 
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   %s 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK001 %s
@@ -19,7 +19,7 @@
 // Test -nostdinc, -nostdlibinc, -nostdinc++
 // -----------------------------------------------------------------------------
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -nostdinc \
 // RUN:   %s 2>&1 \
@@ -27,7 +27,7 @@
 // CHECK110: "-cc1"
 // CHECK110-NOT: "-internal-externc-isystem"
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -nostdlibinc \
 // RUN:   %s 2>&1 \
@@ -35,7 +35,7 @@
 // CHECK111: "-cc1"
 // CHECK111-NOT: "-internal-externc-isystem"
 
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -nostdinc++ \
 // RUN:   %s 2>&1 \
@@ -44,7 +44,7 @@
 // CHECK112-NOT: "-internal-isystem"
 // CHECK112-DAG: "-internal-externc-isystem" "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include"
 
-// RUN: %clangxx -### -target hexagon-unknown-elf -fno-integrated-as    \
+// RUN: %clangxx -### --target=hexagon-unknown-elf -fno-integrated-as    \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
 // RUN:   --gcc-toolchain="" \
 // RUN:   -nostdlibinc \
@@ -57,7 +57,7 @@
 // -----------------------------------------------------------------------------
 // Test -mcpu=<cpuname> -mv<number>
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv5 \
 // RUN:   %s 2>&1 \
@@ -65,7 +65,7 @@
 // CHECK221: "-cc1" {{.*}} "-target-cpu" "hexagonv5"
 // CHECK221: {{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v5/crt0
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv55 \
 // RUN:   %s 2>&1 \
@@ -73,7 +73,7 @@
 // CHECK222: "-cc1" {{.*}} "-target-cpu" "hexagonv55"
 // CHECK222: {{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v55/crt0
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   %s 2>&1 \
@@ -81,7 +81,7 @@
 // CHECK223: "-cc1" {{.*}} "-target-cpu" "hexagonv60"
 // CHECK223: {{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv62 \
 // RUN:   %s 2>&1 \
@@ -89,7 +89,7 @@
 // CHECK224: "-cc1" {{.*}} "-target-cpu" "hexagonv62"
 // CHECK224: {{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v62/crt0
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv65 \
 // RUN:   %s 2>&1 \
@@ -97,7 +97,7 @@
 // CHECK225: "-cc1" {{.*}} "-target-cpu" "hexagonv65"
 // CHECK225: {{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v65/crt0
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv66 \
 // RUN:   %s 2>&1 \
@@ -105,7 +105,7 @@
 // CHECK226: "-cc1" {{.*}} "-target-cpu" "hexagonv66"
 // CHECK226: {{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v66/crt0
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -O3 \
 // RUN:   %s 2>&1 \
@@ -113,7 +113,7 @@
 // CHECK227-NOT: "-ffp-contract=fast"
 // CHECK227: {{hexagon-link|ld}}
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -O3 -ffp-contract=off \
 // RUN:   %s 2>&1 \
@@ -198,7 +198,7 @@
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // Defaults for C
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   %s 2>&1 \
@@ -219,7 +219,7 @@
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // Defaults for C++
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   %s 2>&1 \
@@ -241,7 +241,7 @@
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // Additional Libraries (-L)
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -Lone -L two -L three \
@@ -264,7 +264,7 @@
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // -static, -shared
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -static \
@@ -282,7 +282,7 @@
 // CHECK333: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
 // CHECK333: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -shared \
@@ -305,7 +305,7 @@
 // CHECK334: "--end-group"
 // CHECK334: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/pic/finiS.o"
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -shared \
@@ -332,7 +332,7 @@
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // -nostdlib, -nostartfiles, -nodefaultlibs
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -nostdlib \
@@ -355,7 +355,7 @@
 // CHECK336-NOT: "--end-group"
 // CHECK336-NOT: fini.o
 
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -nostartfiles \
@@ -378,7 +378,7 @@
 // CHECK337: "--end-group"
 // CHECK337-NOT: fini.o
 
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -nodefaultlibs \
@@ -404,7 +404,7 @@
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // -moslib
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -moslib=first -moslib=second \
@@ -426,7 +426,7 @@
 // CHECK339: "-lc" "-lgcc" "--end-group"
 // CHECK339: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -moslib=first -moslib=second -moslib=standalone \
@@ -451,7 +451,7 @@
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // Other args to pass to linker
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -s \
@@ -478,7 +478,7 @@
 // -----------------------------------------------------------------------------
 // pic, small data threshold
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   %s 2>&1 \
@@ -487,13 +487,13 @@
 // CHECK340: {{hexagon-link|ld}}
 // CHECK340-NOT:  "-G{{[0-9]+}}"
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -fpic \
 // RUN:   %s 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK341 %s
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -fPIC \
@@ -506,19 +506,19 @@
 // CHECK341: {{hexagon-link|ld}}
 // CHECK341:      "-G0"
 
-// RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as -fno-pie -no-pie \
+// RUN: %clang -### --target=hexagon-unknown-elf -fno-integrated-as -fno-pie -no-pie \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -G=8 \
 // RUN:   %s 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK342 %s
-// RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as -fno-pie -no-pie \
+// RUN: %clang -### --target=hexagon-unknown-elf -fno-integrated-as -fno-pie -no-pie \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -G 8 \
 // RUN:   %s 2>&1 \
 // RUN:   | FileCheck -check-prefix=CHECK342 %s
-// RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as -fno-pie -no-pie \
+// RUN: %clang -### --target=hexagon-unknown-elf -fno-integrated-as -fno-pie -no-pie \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -msmall-data-threshold=8 \
@@ -535,7 +535,7 @@
 // -----------------------------------------------------------------------------
 // pie
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -pie \
@@ -545,7 +545,7 @@
 // CHECK350:      {{hexagon-link|ld}}
 // CHECK350:      "-pie"
 
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -pie -shared \
@@ -558,7 +558,7 @@
 // -----------------------------------------------------------------------------
 // Test Assembler related args
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf -fno-integrated-as    \
+// RUN: %clang -### --target=hexagon-unknown-elf -fno-integrated-as    \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -gdwarf-2 \
@@ -574,27 +574,27 @@
 // -----------------------------------------------------------------------------
 // ffixed-r19
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf -ffixed-r19 %s 2>&1 \
+// RUN: %clang -### --target=hexagon-unknown-elf -ffixed-r19 %s 2>&1 \
 // RUN:        | FileCheck --check-prefix=CHECK370 %s
 // CHECK370: "-target-feature" "+reserved-r19"
-// RUN: %clang -### -target hexagon-unknown-elf %s 2>&1 \
+// RUN: %clang -### --target=hexagon-unknown-elf %s 2>&1 \
 // RUN:        | FileCheck --check-prefix=CHECK371 %s
 // CHECK371-NOT: "+reserved-r19"
 
 // -----------------------------------------------------------------------------
 // mcabac
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf -mcabac %s 2>&1 \
+// RUN: %clang -### --target=hexagon-unknown-elf -mcabac %s 2>&1 \
 // RUN:        | FileCheck --check-prefix=CHECK372 %s
 // CHECK372: "-target-feature" "+cabac"
-// RUN: %clang -### -target hexagon-unknown-elf %s 2>&1 \
+// RUN: %clang -### --target=hexagon-unknown-elf %s 2>&1 \
 // RUN:        | FileCheck --check-prefix=CHECK373 %s
 // CHECK373-NOT: "+cabac"
 
 // -----------------------------------------------------------------------------
 // Misc Defaults
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   %s 2>&1 \
@@ -617,7 +617,7 @@
 // -----------------------------------------------------------------------------
 // Passing -fuse-ld=lld
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -fuse-ld=lld \
@@ -628,7 +628,7 @@
 // -----------------------------------------------------------------------------
 // Passing --sysroot
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   --sysroot=/hexagon \
@@ -639,7 +639,7 @@
 // -----------------------------------------------------------------------------
 // Passing -fno-use-init-array
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   %s 2>&1 \
diff --git a/clang/test/Driver/hexagon-toolchain-linux.c b/clang/test/Driver/hexagon-toolchain-linux.c
index 423306affdce3ac..a929ad2db4a6e55 100644
--- a/clang/test/Driver/hexagon-toolchain-linux.c
+++ b/clang/test/Driver/hexagon-toolchain-linux.c
@@ -3,7 +3,7 @@
 // -----------------------------------------------------------------------------
 // Passing --musl
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-linux-musl \
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   -fuse-ld=lld \
@@ -17,7 +17,7 @@
 // -----------------------------------------------------------------------------
 // Passing --musl --shared
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-linux-musl \
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   --sysroot=%S/Inputs/basic_linux_libcxx_tree -shared \
@@ -30,7 +30,7 @@
 // -----------------------------------------------------------------------------
 // Passing --musl -nostdlib
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-linux-musl \
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   --sysroot=%S/Inputs/basic_linux_libcxx_tree -nostdlib \
@@ -44,7 +44,7 @@
 // -----------------------------------------------------------------------------
 // Passing --musl -nostartfiles
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-linux-musl \
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   --sysroot=%S/Inputs/basic_linux_libcxx_tree -nostartfiles \
@@ -57,7 +57,7 @@
 // -----------------------------------------------------------------------------
 // Passing --musl -nodefaultlibs
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-linux-musl \
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   --sysroot=%S/Inputs/basic_linux_libcxx_tree -nodefaultlibs \
@@ -70,7 +70,7 @@
 // -----------------------------------------------------------------------------
 // Not Passing -fno-use-init-array when musl is selected
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-linux-musl \
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 \
 // RUN:   %s 2>&1 \
@@ -80,7 +80,7 @@
 // -----------------------------------------------------------------------------
 // c++ when musl is selected
 // -----------------------------------------------------------------------------
-// RUN: %clangxx -### -target hexagon-unknown-linux-musl \
+// RUN: %clangxx -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   --sysroot=%S/Inputs/basic_linux_libcxx_tree \
 // RUN:   -mcpu=hexagonv60 \
@@ -90,7 +90,7 @@
 // -----------------------------------------------------------------------------
 // c++ when musl is selected
 // -----------------------------------------------------------------------------
-// RUN: %clangxx -### -target hexagon-unknown-elf \
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -stdlib=libc++ \
 // RUN:   -mcpu=hexagonv60 \
@@ -100,7 +100,7 @@
 // -----------------------------------------------------------------------------
 // internal-isystem for linux with and without musl
 // -----------------------------------------------------------------------------
-// RUN: %clang -### -target hexagon-unknown-linux-musl \
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -resource-dir=%S/Inputs/resource_dir \
 // RUN:   %s 2>&1 \
@@ -110,7 +110,7 @@
 // CHECK008-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include"
 // CHECK008-SAME: {{^}} "-internal-externc-isystem" "[[INSTALLED_DIR]]/../target/hexagon/include"
 
-// RUN: %clang -### -target hexagon-unknown-linux \
+// RUN: %clang -### --target=hexagon-unknown-linux \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -resource-dir=%S/Inputs/resource_dir \
 // RUN:   %s 2>&1 \
diff --git a/clang/test/Driver/hexagon-vectorize.c b/clang/test/Driver/hexagon-vectorize.c
index 6a142e30cd949a0..6f6b0f7bbda6d64 100644
--- a/clang/test/Driver/hexagon-vectorize.c
+++ b/clang/test/Driver/hexagon-vectorize.c
@@ -1,7 +1,7 @@
-// RUN: %clang -target hexagon -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-DEFAULT
-// RUN: %clang -target hexagon -fvectorize -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-VECTOR
-// RUN: %clang -target hexagon -fvectorize -fno-vectorize -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-NOVECTOR
-// RUN: %clang -target hexagon -fvectorize -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-NEEDHVX
+// RUN: %clang --target=hexagon -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-DEFAULT
+// RUN: %clang --target=hexagon -fvectorize -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-VECTOR
+// RUN: %clang --target=hexagon -fvectorize -fno-vectorize -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-NOVECTOR
+// RUN: %clang --target=hexagon -fvectorize -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-NEEDHVX
 
 // CHECK-DEFAULT-NOT: hexagon-autohvx
 // CHECK-VECTOR: "-mllvm" "-hexagon-autohvx"

>From e6ecdd24e7495972fe8bc981b08b7aa98739a257 Mon Sep 17 00:00:00 2001
From: Brian Cain <bcain at quicinc.com>
Date: Tue, 26 Sep 2023 19:57:47 -0700
Subject: [PATCH 2/2] [clang][hexagon] Add support for -nolibc

---
 clang/lib/Driver/ToolChains/Hexagon.cpp     |  6 ++++--
 clang/test/Driver/hexagon-toolchain-elf.c   | 23 ++++++++++++++++++++-
 clang/test/Driver/hexagon-toolchain-linux.c | 10 +++++++++
 3 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp
index e7dca1053dc8d8a..d81e022708932f7 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
+++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
@@ -377,7 +377,8 @@ constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
         linkXRayRuntimeDeps(HTC, Args, CmdArgs);
 
       CmdArgs.push_back("-lclang_rt.builtins-hexagon");
-      CmdArgs.push_back("-lc");
+      if (!Args.hasArg(options::OPT_nolibc))
+        CmdArgs.push_back("-lc");
     }
     if (D.CCCIsCXX()) {
       if (HTC.ShouldLinkCXXStdlib(Args))
@@ -470,7 +471,8 @@ constructHexagonLinkArgs(Compilation &C, const JobAction &JA,
     if (!IsShared) {
       for (StringRef Lib : OsLibs)
         CmdArgs.push_back(Args.MakeArgString("-l" + Lib));
-      CmdArgs.push_back("-lc");
+      if (!Args.hasArg(options::OPT_nolibc))
+        CmdArgs.push_back("-lc");
     }
     CmdArgs.push_back("-lgcc");
 
diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c
index e8987923cb3db77..478011f0e1988fe 100644
--- a/clang/test/Driver/hexagon-toolchain-elf.c
+++ b/clang/test/Driver/hexagon-toolchain-elf.c
@@ -330,7 +330,7 @@
 // CHECK335: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/fini.o"
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-// -nostdlib, -nostartfiles, -nodefaultlibs
+// -nostdlib, -nostartfiles, -nodefaultlibs, -nolibc
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
@@ -401,6 +401,27 @@
 // CHECK338-NOT: "--end-group"
 // CHECK338: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
 
+// RUN: %clangxx -### --target=hexagon-unknown-elf \
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin -mcpu=hexagonv60 \
+// RUN:    -nolibc %s 2>&1 | FileCheck -check-prefix=CHECK-NOLIBC %s
+// CHECK-NOLIBC: "-cc1"
+// CHECK-NOLIBC: {{hexagon-link|ld}}
+// CHECK-NOLIBC-SAME: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
+// CHECK-NOLIBC-SAME: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
+// CHECK-NOLIBC-SAME: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
+// CHECK-NOLIBC-SAME: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
+// CHECK-NOLIBC-SAME: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK-NOLIBC-SAME: "{{[^"]+}}.o"
+// CHECK-NOLIBC-SAME: "-lstdc++"
+// CHECK-NOLIBC-SAME: "-lm"
+// CHECK-NOLIBC-SAME: "--start-group"
+// CHECK-NOLIBC-SAME: "-lstandalone"
+// CHECK-NOLIBC-NOT: "-lc"
+// CHECK-NOLIBC-SAME: "-lgcc"
+// CHECK-NOLIBC-SAME: "--end-group"
+// CHECK-NOLIBC-SAME: "{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+
+
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 // -moslib
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/clang/test/Driver/hexagon-toolchain-linux.c b/clang/test/Driver/hexagon-toolchain-linux.c
index a929ad2db4a6e55..14f1e7770057dfa 100644
--- a/clang/test/Driver/hexagon-toolchain-linux.c
+++ b/clang/test/Driver/hexagon-toolchain-linux.c
@@ -68,6 +68,16 @@
 // CHECK004-NOT:   "-lclang_rt.builtins-hexagon"
 // CHECK004-NOT:   "-lc"
 // -----------------------------------------------------------------------------
+// Passing --musl -nolibc
+// -----------------------------------------------------------------------------
+// RUN: %clang -### --target=hexagon-unknown-linux-musl \
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
+// RUN:   -mcpu=hexagonv60 --sysroot=%S/Inputs/basic_linux_libcxx_tree \
+// RUN:   -nolibc %s 2>&1 | FileCheck -check-prefix=CHECK-NOLIBC %s
+// CHECK-NOLIBC:       "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1"
+// CHECK-NOLIBC-SAME:  "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o"
+// CHECK-NOLIBC-NOT:   "-lc"
+// -----------------------------------------------------------------------------
 // Not Passing -fno-use-init-array when musl is selected
 // -----------------------------------------------------------------------------
 // RUN: %clang -### --target=hexagon-unknown-linux-musl \



More information about the cfe-commits mailing list