https://github.com/quic-akaryaki updated 
https://github.com/llvm/llvm-project/pull/188824

>From 25d587db1cc7e4e599dc16bb6ef78dbdb2924740 Mon Sep 17 00:00:00 2001
From: Alexey Karyakin <[email protected]>
Date: Wed, 25 Mar 2026 15:45:14 -0700
Subject: [PATCH] [Hexagon] Clean up library and include paths and fix
 --sysroot

Unify include and library paths by reusing common code to compute path
prefixes. First, determine the effective sysroot by choosing a
user-provided sysroot, "../target/<triple>", or "../target/hexagon",
in the order of precedence. Based on the sysroot, derive the standard
include path, C++ include path, and base library path.

Fix the default -L library paths so they are taken from the external
sysroot, when one specified. Previously, these paths were always
relative to the install directory and sysroot was ignored.

Remove certain locations from considerations, as there are never used
for the corresponding purpose in existing sysroots:
- fallback to install path, typically "../target/bin", as the base path
  when other sysroot cannot be found;
- similarly, fallback to "../target/" for startup files;
- "../target/bin" for program paths as there are no program files in
  current sysroots.

Other minor changes:
- use windows-correct path delimiting;
- enable hexagon-toolchain-linux.c test for windows hosts.
---
 clang/lib/Driver/ToolChains/Hexagon.cpp     | 168 +++++++++---------
 clang/lib/Driver/ToolChains/Hexagon.h       |   6 +-
 clang/test/Driver/hexagon-toolchain-elf.c   | 180 ++++++++++----------
 clang/test/Driver/hexagon-toolchain-linux.c |  18 +-
 4 files changed, 194 insertions(+), 178 deletions(-)

diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp 
b/clang/lib/Driver/ToolChains/Hexagon.cpp
index 1f39b94e2afa3..0148e1f9ac22a 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
+++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
@@ -277,7 +277,6 @@ constructHexagonLinkArgs(Compilation &C, const JobAction 
&JA,
   bool IncStdLib = !Args.hasArg(options::OPT_nostdlib);
   bool IncStartFiles = !Args.hasArg(options::OPT_nostartfiles);
   bool IncDefLibs = !Args.hasArg(options::OPT_nodefaultlibs);
-  bool UseG0 = false;
   bool UseLLD = false;
   const char *Exec = Args.MakeArgString(HTC.GetLinkerPath(&UseLLD));
   UseLLD = UseLLD || llvm::sys::path::filename(Exec).ends_with("ld.lld") ||
@@ -327,10 +326,8 @@ constructHexagonLinkArgs(Compilation &C, const JobAction 
&JA,
   if (IsPIE && !IsShared)
     CmdArgs.push_back("-pie");
 
-  if (auto G = toolchains::HexagonToolChain::getSmallDataThreshold(Args)) {
+  if (auto G = toolchains::HexagonToolChain::getSmallDataThreshold(Args))
     CmdArgs.push_back(Args.MakeArgString("-G" + Twine(*G)));
-    UseG0 = *G == 0;
-  }
 
   CmdArgs.push_back("-o");
   CmdArgs.push_back(Output.getFilename());
@@ -397,34 +394,22 @@ constructHexagonLinkArgs(Compilation &C, const JobAction 
&JA,
   
//----------------------------------------------------------------------------
   // Start Files
   
//----------------------------------------------------------------------------
-  const std::string MCpuSuffix = "/" + CpuVer.str();
-  const std::string MCpuG0Suffix = MCpuSuffix + "/G0";
-  const std::string RootDir =
-      HTC.getHexagonTargetDir(D.Dir, D.PrefixDirs) + "/";
-  const std::string StartSubDir =
-      "hexagon/lib" + (UseG0 ? MCpuG0Suffix : MCpuSuffix);
-
-  auto Find = [&HTC] (const std::string &RootDir, const std::string &SubDir,
-                      const char *Name) -> std::string {
-    std::string RelName = SubDir + Name;
-    std::string P = HTC.GetFilePath(RelName.c_str());
-    if (llvm::sys::fs::exists(P))
-      return P;
-    return RootDir + RelName;
-  };
+  SmallString<128> LibraryDir;
+  HTC.getLibraryDir(Args, LibraryDir);
 
   if (IncStdLib && IncStartFiles) {
     if (!IsShared) {
       if (HasStandalone) {
-        std::string Crt0SA = Find(RootDir, StartSubDir, "/crt0_standalone.o");
+        SmallString<128> Crt0SA = LibraryDir;
+        llvm::sys::path::append(Crt0SA, "crt0_standalone.o");
         CmdArgs.push_back(Args.MakeArgString(Crt0SA));
       }
-      std::string Crt0 = Find(RootDir, StartSubDir, "/crt0.o");
+      SmallString<128> Crt0 = LibraryDir;
+      llvm::sys::path::append(Crt0, "crt0.o");
       CmdArgs.push_back(Args.MakeArgString(Crt0));
     }
-    std::string Init = UseShared
-          ? Find(RootDir, StartSubDir + "/pic", "/initS.o")
-          : Find(RootDir, StartSubDir, "/init.o");
+    SmallString<128> Init = LibraryDir;
+    llvm::sys::path::append(Init, UseShared ? "initS.o" : "init.o");
     CmdArgs.push_back(Args.MakeArgString(Init));
   }
 
@@ -471,9 +456,8 @@ constructHexagonLinkArgs(Compilation &C, const JobAction 
&JA,
   // End files
   
//----------------------------------------------------------------------------
   if (IncStdLib && IncStartFiles) {
-    std::string Fini = UseShared
-          ? Find(RootDir, StartSubDir + "/pic", "/finiS.o")
-          : Find(RootDir, StartSubDir, "/fini.o");
+    SmallString<128> Fini = LibraryDir;
+    llvm::sys::path::append(Fini, UseShared ? "finiS.o" : "fini.o");
     CmdArgs.push_back(Args.MakeArgString(Fini));
   }
 }
@@ -509,10 +493,64 @@ std::string HexagonToolChain::getHexagonTargetDir(
     if (D.getVFS().exists(I))
       return I;
 
-  if (getVFS().exists(InstallRelDir = InstalledDir + "/../target"))
-    return InstallRelDir;
+  SmallString<128> Dir(InstalledDir);
+  llvm::sys::path::append(Dir, "..", "target");
+  return std::string(Dir);
+}
+
+SmallString<128> HexagonToolChain::getEffectiveSysRoot() const {
+  const Driver &D = getDriver();
+  // The user-specified `--sysroot` always takes precedence.
+  if (!D.SysRoot.empty())
+    return SmallString<128>(D.SysRoot);
+  // Otherwise, pick a path relative to the install directory. Try a triple
+  // subdirectory first.
+  SmallString<128> Dir(getHexagonTargetDir(D.Dir, D.PrefixDirs));
+  llvm::sys::path::append(Dir, getTriple().normalize());
+  if (getVFS().exists(Dir))
+    return Dir;
+  // Otherwise, fall back to "../target/hexagon".
+  Dir = getHexagonTargetDir(D.Dir, D.PrefixDirs);
+  llvm::sys::path::append(Dir, "hexagon");
+  return Dir;
+}
+
+void HexagonToolChain::getLibraryDir(const ArgList &Args,
+                                     llvm::SmallString<128> &Dir) const {
+  bool IsLinuxMusl = getTriple().isMusl() && getTriple().isOSLinux();
+  const llvm::SmallString<128> SysRoot = getEffectiveSysRoot();
+  // Linux toolchain uses "usr/lib" but it also should accept "lib" in case an
+  // external sysroot is used. Similar logic is for include paths.
+  if (IsLinuxMusl) {
+    Dir = SysRoot;
+    llvm::sys::path::append(Dir, "usr", "lib");
+  }
+  if (!IsLinuxMusl || !getVFS().exists(Dir)) {
+    Dir = SysRoot;
+    llvm::sys::path::append(Dir, "lib");
+  }
+  std::string CpuVer = GetTargetCPUVersion(Args).str();
+  llvm::sys::path::append(Dir, CpuVer);
+  if (auto G = toolchains::HexagonToolChain::getSmallDataThreshold(Args))
+    if (*G == 0)
+      llvm::sys::path::append(Dir, "G0");
+  bool IsStatic = Args.hasArg(options::OPT_static);
+  bool IsShared = Args.hasArg(options::OPT_shared);
+  if (IsShared && !IsStatic)
+    llvm::sys::path::append(Dir, "pic");
+}
 
-  return InstalledDir;
+void HexagonToolChain::getBaseIncludeDir(llvm::SmallString<128> &Dir) const {
+  bool IsLinuxMusl = getTriple().isMusl() && getTriple().isOSLinux();
+  const llvm::SmallString<128> SysRoot = getEffectiveSysRoot();
+  if (IsLinuxMusl) {
+    Dir = SysRoot;
+    llvm::sys::path::append(Dir, "usr", "include");
+  }
+  if (!IsLinuxMusl || !getVFS().exists(Dir)) {
+    Dir = SysRoot;
+    llvm::sys::path::append(Dir, "include");
+  }
 }
 
 std::optional<unsigned>
@@ -558,9 +596,9 @@ void HexagonToolChain::getHexagonLibraryPaths(const ArgList 
&Args,
   std::copy(D.PrefixDirs.begin(), D.PrefixDirs.end(),
             std::back_inserter(RootDirs));
 
-  std::string TargetDir = getHexagonTargetDir(D.Dir, D.PrefixDirs);
-  if (!llvm::is_contained(RootDirs, TargetDir))
-    RootDirs.push_back(TargetDir);
+  std::string SysRoot(getEffectiveSysRoot());
+  if (!llvm::is_contained(RootDirs, SysRoot))
+    RootDirs.push_back(SysRoot);
 
   bool HasPIC = Args.hasArg(options::OPT_fpic, options::OPT_fPIC);
   // Assume G0 with -shared.
@@ -570,7 +608,7 @@ void HexagonToolChain::getHexagonLibraryPaths(const ArgList 
&Args,
 
   const std::string CpuVer = GetTargetCPUVersion(Args).str();
   for (auto &Dir : RootDirs) {
-    std::string LibDir = Dir + "/hexagon/lib";
+    std::string LibDir = Dir + "/lib";
     std::string LibDirCpu = LibDir + '/' + CpuVer;
     if (HasG0) {
       if (HasPIC)
@@ -585,14 +623,6 @@ void HexagonToolChain::getHexagonLibraryPaths(const 
ArgList &Args,
 HexagonToolChain::HexagonToolChain(const Driver &D, const llvm::Triple &Triple,
                                    const llvm::opt::ArgList &Args)
     : Linux(D, Triple, Args) {
-  const std::string TargetDir = getHexagonTargetDir(D.Dir, D.PrefixDirs);
-
-  // Note: Generic_GCC::Generic_GCC adds InstalledDir and getDriver().Dir to
-  // program paths
-  const std::string BinDir(TargetDir + "/bin");
-  if (D.getVFS().exists(BinDir))
-    getProgramPaths().push_back(BinDir);
-
   ToolChain::path_list &LibPaths = getFilePaths();
 
   // Remove paths added by Linux toolchain. Currently Hexagon_TC really targets
@@ -694,58 +724,42 @@ void HexagonToolChain::AddClangSystemIncludeArgs(const 
ArgList &DriverArgs,
 
   const Driver &D = getDriver();
   const bool UseBuiltins = !DriverArgs.hasArg(options::OPT_nobuiltininc);
-  const bool HasSysRoot = !D.SysRoot.empty();
-  const bool IsLinuxMusl = getTriple().isMusl() && getTriple().isOSLinux();
-
   if (UseBuiltins) {
     SmallString<128> ResourceDirInclude(D.ResourceDir);
     llvm::sys::path::append(ResourceDirInclude, "include");
     addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude);
   }
-  if (DriverArgs.hasArg(options::OPT_nostdlibinc))
-    return;
-  if (HasSysRoot) {
-    SmallString<128> P(D.SysRoot);
-    if (IsLinuxMusl)
-      llvm::sys::path::append(P, "usr/include");
-    else
-      llvm::sys::path::append(P, "include");
-
-    addExternCSystemInclude(DriverArgs, CC1Args, P.str());
-    // LOCAL_INCLUDE_DIR
-    addSystemInclude(DriverArgs, CC1Args, P + "/usr/local/include");
+  if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) {
+    SmallString<128> CIncludeDir;
+    getBaseIncludeDir(CIncludeDir);
+    addExternCSystemInclude(DriverArgs, CC1Args, std::string(CIncludeDir));
+    bool IsLinuxMusl = getTriple().isMusl() && getTriple().isOSLinux();
+    if (IsLinuxMusl) {
+      SmallString<128> LocalIncludeDir = getEffectiveSysRoot();
+      llvm::sys::path::append(LocalIncludeDir, "usr", "local", "include");
+      addSystemInclude(DriverArgs, CC1Args, LocalIncludeDir);
+    }
     // TOOL_INCLUDE_DIR
     AddMultilibIncludeArgs(DriverArgs, CC1Args);
-  } else {
-    std::string TargetDir = getHexagonTargetDir(D.Dir, D.PrefixDirs);
-    addExternCSystemInclude(DriverArgs, CC1Args,
-                            TargetDir + "/hexagon/include");
   }
 }
 
 void HexagonToolChain::addLibCxxIncludePaths(
     const llvm::opt::ArgList &DriverArgs,
     llvm::opt::ArgStringList &CC1Args) const {
-  const Driver &D = getDriver();
-  if (!D.SysRoot.empty() && getTriple().isMusl())
-    addLibStdCXXIncludePaths(D.SysRoot + "/usr/include/c++/v1", "", "",
-                             DriverArgs, CC1Args);
-  else if (getTriple().isMusl())
-    addLibStdCXXIncludePaths("/usr/include/c++/v1", "", "", DriverArgs,
-                             CC1Args);
-  else {
-    std::string TargetDir = getHexagonTargetDir(D.Dir, D.PrefixDirs);
-    addLibStdCXXIncludePaths(TargetDir + "/hexagon/include/c++/v1", "", "",
-                             DriverArgs, CC1Args);
-  }
+  SmallString<128> Dir;
+  getBaseIncludeDir(Dir);
+  llvm::sys::path::append(Dir, "c++", "v1");
+  addLibStdCXXIncludePaths(Dir, "", "", DriverArgs, CC1Args);
 }
+
 void HexagonToolChain::addLibStdCxxIncludePaths(
     const llvm::opt::ArgList &DriverArgs,
     llvm::opt::ArgStringList &CC1Args) const {
-  const Driver &D = getDriver();
-  std::string TargetDir = getHexagonTargetDir(D.Dir, D.PrefixDirs);
-  addLibStdCXXIncludePaths(TargetDir + "/hexagon/include/c++", "", "",
-                           DriverArgs, CC1Args);
+  SmallString<128> Dir;
+  getBaseIncludeDir(Dir);
+  llvm::sys::path::append(Dir, "c++");
+  addLibStdCXXIncludePaths(Dir, "", "", DriverArgs, CC1Args);
 }
 
 ToolChain::CXXStdlibType
diff --git a/clang/lib/Driver/ToolChains/Hexagon.h 
b/clang/lib/Driver/ToolChains/Hexagon.h
index ad47fc735e4b8..63dd7d78395e7 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.h
+++ b/clang/lib/Driver/ToolChains/Hexagon.h
@@ -102,8 +102,12 @@ class LLVM_LIBRARY_VISIBILITY HexagonToolChain : public 
Linux {
   std::string getHexagonTargetDir(
       const std::string &InstalledDir,
       const SmallVectorImpl<std::string> &PrefixDirs) const;
+  SmallString<128> getEffectiveSysRoot() const;
+  void getBaseIncludeDir(llvm::SmallString<128> &) const;
+  void getLibraryDir(const llvm::opt::ArgList &Args,
+                     llvm::SmallString<128> &) const;
   void getHexagonLibraryPaths(const llvm::opt::ArgList &Args,
-      ToolChain::path_list &LibPaths) const;
+                              ToolChain::path_list &LibPaths) const;
 
   std::string getCompilerRTPath() const override;
 
diff --git a/clang/test/Driver/hexagon-toolchain-elf.c 
b/clang/test/Driver/hexagon-toolchain-elf.c
index a3aac15905d46..f2634559f75ea 100644
--- a/clang/test/Driver/hexagon-toolchain-elf.c
+++ b/clang/test/Driver/hexagon-toolchain-elf.c
@@ -4,12 +4,12 @@
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK000 %s
-// CHECK000: "-cc1" {{.*}} "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include"
+// CHECK000: "-cc1" {{.*}} "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}include"
 
 // RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK001 %s
-// CHECK001: "-cc1" {{.*}} "-internal-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include/c++"
-// CHECK001:   "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include"
+// CHECK001: "-cc1" {{.*}} "-internal-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}include{{/|\\\\}}c++"
+// CHECK001:   "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}include"
 
 // 
-----------------------------------------------------------------------------
 // Test -nostdinc, -nostdlibinc, -nostdinc++
@@ -34,7 +34,7 @@
 // CHECK-RESOURCE-DIR: "-cc1"
 // CHECK-RESOURCE-DIR: "-resource-dir" "[[RESOURCE:[^"]+]]"
 // CHECK-RESOURCE-DIR: "-internal-isystem" "[[RESOURCE]]{{/|\\\\}}include"
-// CHECK-RESOURCE-DIR: "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include"
+// CHECK-RESOURCE-DIR: "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}include"
 
 // RUN: %clangxx -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
@@ -44,7 +44,7 @@
 // CHECK112: "-resource-dir" "[[RESOURCE:[^"]+]]"
 // CHECK112: "-internal-isystem" "[[RESOURCE]]{{/|\\\\}}include"
 // CHECK112-NOT: "-internal-isystem"
-// CHECK112-DAG: "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/include"
+// CHECK112-DAG: "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}include"
 
 // RUN: %clangxx -### --target=hexagon-unknown-elf -fno-integrated-as    \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/qc/bin \
@@ -63,37 +63,37 @@
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv5 %s 2>&1 | FileCheck -check-prefix=CHECK221 %s
 // CHECK221: "-cc1" {{.*}} "-target-cpu" "hexagonv5"
-// CHECK221: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v5/crt0
+// CHECK221: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v5{{/|\\\\}}crt0
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv55 %s 2>&1 | FileCheck -check-prefix=CHECK222 %s
 // CHECK222: "-cc1" {{.*}} "-target-cpu" "hexagonv55"
-// CHECK222: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v55/crt0
+// CHECK222: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v55{{/|\\\\}}crt0
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv60 %s 2>&1 | FileCheck -check-prefix=CHECK223 %s
 // CHECK223: "-cc1" {{.*}} "-target-cpu" "hexagonv60"
-// CHECK223: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0
+// CHECK223: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv62 %s 2>&1 | FileCheck -check-prefix=CHECK224 %s
 // CHECK224: "-cc1" {{.*}} "-target-cpu" "hexagonv62"
-// CHECK224: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v62/crt0
+// CHECK224: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v62{{/|\\\\}}crt0
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv65 %s 2>&1 | FileCheck -check-prefix=CHECK225 %s
 // CHECK225: "-cc1" {{.*}} "-target-cpu" "hexagonv65"
-// CHECK225: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v65/crt0
+// CHECK225: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v65{{/|\\\\}}crt0
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv66 %s 2>&1 | FileCheck -check-prefix=CHECK226 %s
 // CHECK226: "-cc1" {{.*}} "-target-cpu" "hexagonv66"
-// CHECK226: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v66/crt0
+// CHECK226: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v66{{/|\\\\}}crt0
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
@@ -116,77 +116,77 @@
 // RUN:   -mv65 -march=hexagon\
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK229 %s
 // CHECK229: "-cc1" {{.*}} "-target-cpu" "hexagonv65"
-// CHECK229: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v65/crt0
+// CHECK229: 
{{hexagon-link|ld}}{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v65{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv67 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK22A %s
 // CHECK22A: "-cc1" {{.*}} "-target-cpu" "hexagonv67"
-// CHECK22A: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v67/crt0
+// CHECK22A: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v67{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv67t \
 // RUN:   -fuse-ld=fake-value-to-ignore-CLANG_DEFAULT_LINKER %s 2>&1 | 
FileCheck -check-prefix=CHECK22B %s
 // CHECK22B: "-cc1" {{.*}} "-target-cpu" "hexagonv67t"
-// CHECK22B: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v67t/crt0
+// CHECK22B: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v67t{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv68 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK22C %s
 // CHECK22C: "-cc1" {{.*}} "-target-cpu" "hexagonv68"
-// CHECK22C: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v68/crt0
+// CHECK22C: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v68{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv69 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK22D %s
 // CHECK22D: "-cc1" {{.*}} "-target-cpu" "hexagonv69"
-// CHECK22D: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v69/crt0
+// CHECK22D: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v69{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv71 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK22E %s
 // CHECK22E: "-cc1" {{.*}} "-target-cpu" "hexagonv71"
-// CHECK22E: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v71/crt0
+// CHECK22E: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v71{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv71t -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK22F %s
 // CHECK22F: "-cc1" {{.*}} "-target-cpu" "hexagonv71t"
-// CHECK22F: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v71t/crt0
+// CHECK22F: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v71t{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv73 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK230 %s
 // CHECK230: "-cc1" {{.*}} "-target-cpu" "hexagonv73"
-// CHECK230: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v73/crt0
+// CHECK230: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v73{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv75 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK240 %s
 // CHECK240: "-cc1" {{.*}} "-target-cpu" "hexagonv75"
-// CHECK240: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v75/crt0
+// CHECK240: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v75{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv79 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK250 %s
 // CHECK250: "-cc1" {{.*}} "-target-cpu" "hexagonv79"
-// CHECK250: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v79/crt0
+// CHECK250: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v79{{/|\\\\}}crt0
 
 // RUN: not %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -mcpu=hexagonv81 -fuse-ld=hexagon-link \
 // RUN:   %s 2>&1 | FileCheck -check-prefix=CHECK260 %s
 // CHECK260: "-cc1" {{.*}} "-target-cpu" "hexagonv81"
-// CHECK260: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v81/crt0
+// CHECK260: 
hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v81{{/|\\\\}}crt0
 
 // 
-----------------------------------------------------------------------------
 // Test Linker related args
@@ -202,14 +202,14 @@
 // CHECK330: {{hexagon-link|ld}}
 // CHECK330-NOT: "-static"
 // CHECK330-NOT: "-shared"
-// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
-// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
-// CHECK330: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK330: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0_standalone.o"
+// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
+// CHECK330: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK330: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK330: "{{[^"]+}}.o"
 // CHECK330: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
-// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// CHECK330: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
 // Defaults for C++
@@ -221,14 +221,14 @@
 // CHECK331: {{hexagon-link|ld}}
 // CHECK331-NOT: "-static"
 // CHECK331-NOT: "-shared"
-// CHECK331: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
-// CHECK331-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK331-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
-// CHECK331-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK331-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK331: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0_standalone.o"
+// CHECK331-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK331-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
+// CHECK331-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK331-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK331-SAME: "{{[^"]+}}.o"
 // CHECK331-SAME: "-lstdc++" "-lm" "--start-group" "-lstandalone" "-lc" 
"-lgcc" "--end-group"
-// CHECK331-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// CHECK331-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
 // Additional Libraries (-L)
@@ -241,15 +241,15 @@
 // CHECK332: {{hexagon-link|ld}}
 // CHECK332-NOT: "-static"
 // CHECK332-NOT: "-shared"
-// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
-// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
+// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0_standalone.o"
+// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
 // CHECK332: "-Lone" "-Ltwo" "-Lthree"
-// CHECK332: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK332: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK332: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK332: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK332: "{{[^"]+}}.o"
 // CHECK332: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
-// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// CHECK332: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
 // -static, -shared
@@ -261,14 +261,14 @@
 // CHECK333: "-cc1"
 // CHECK333: {{hexagon-link|ld}}
 // CHECK333: "-static"
-// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
-// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
-// CHECK333: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK333: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0_standalone.o"
+// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
+// CHECK333: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK333: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK333: "{{[^"]+}}.o"
 // CHECK333: "--start-group" "-lstandalone" "-lc" "-lgcc" "--end-group"
-// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// CHECK333: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
@@ -279,17 +279,17 @@
 // CHECK334: "-shared" "-call_shared"
 // CHECK334-NOT: crt0_standalone.o
 // CHECK334-NOT: crt0.o
-// CHECK334: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/pic/initS.o"
-// CHECK334: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0"
-// CHECK334: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK334: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK334: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}G0{{/|\\\\}}pic{{/|\\\\}}initS.o"
+// CHECK334: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}G0"
+// CHECK334: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK334: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK334: "{{[^"]+}}.o"
 // CHECK334: "--start-group"
 // CHECK334-NOT: "-lstandalone"
 // CHECK334-NOT: "-lc"
 // CHECK334: "-lgcc"
 // CHECK334: "--end-group"
-// CHECK334: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/pic/finiS.o"
+// CHECK334: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}G0{{/|\\\\}}pic{{/|\\\\}}finiS.o"
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
@@ -301,16 +301,16 @@
 // CHECK335: "-shared" "-call_shared" "-static"
 // CHECK335-NOT: crt0_standalone.o
 // CHECK335-NOT: crt0.o
-// CHECK335: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/init.o"
-// CHECK335-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0"
-// CHECK335-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK335-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK335: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}G0{{/|\\\\}}init.o"
+// CHECK335-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}G0"
+// CHECK335-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK335-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK335-SAME: "{{[^"]+}}.o"
 // CHECK335-SAME: "--start-group"
 // CHECK335-NOT: "-lstandalone"
 // CHECK335-NOT: "-lc"
 // CHECK335-SAME: "-lgcc" "--end-group"
-// CHECK335-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/G0/fini.o"
+// CHECK335-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}G0{{/|\\\\}}fini.o"
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
 // -nostdlib, -nostartfiles, -nodefaultlibs, -nolibc
@@ -324,8 +324,8 @@
 // CHECK336-NOT: crt0_standalone.o
 // CHECK336-NOT: crt0.o
 // CHECK336-NOT: init.o
-// CHECK336: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK336: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK336: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK336: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK336: "{{[^"]+}}.o"
 // CHECK336-NOT: "-lstdc++"
 // CHECK336-NOT: "-lm"
@@ -345,8 +345,8 @@
 // CHECK337-NOT: crt0_standalone.o
 // CHECK337-NOT: crt0.o
 // CHECK337-NOT: init.o
-// CHECK337: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK337: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK337: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK337: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK337: "{{[^"]+}}.o"
 // CHECK337: "-lstdc++" "-lm" "--start-group" "-lstandalone" "-lc" "-lgcc" 
"--end-group"
 // CHECK337-NOT: fini.o
@@ -357,11 +357,11 @@
 // RUN:   -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=CHECK338 %s
 // CHECK338: "-cc1"
 // CHECK338: {{hexagon-link|ld}}
-// CHECK338: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
-// CHECK338: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK338: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
-// CHECK338: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK338: "-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK338: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0_standalone.o"
+// CHECK338: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK338: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
+// CHECK338: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK338: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK338: "{{[^"]+}}.o"
 // CHECK338-NOT: "-lstdc++"
 // CHECK338-NOT: "-lm"
@@ -370,18 +370,18 @@
 // CHECK338-NOT: "-lc"
 // CHECK338-NOT: "-lgcc"
 // CHECK338-NOT: "--end-group"
-// CHECK338: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// 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:   -fuse-ld=lld -nolibc %s 2>&1 | FileCheck -check-prefix=CHECK-NOLIBC 
%s
 // CHECK-NOLIBC: "-cc1"
 // CHECK-NOLIBC: ld.lld
-// 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: 
"{{.*}}/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"
@@ -390,7 +390,7 @@
 // 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"
+// CHECK-NOLIBC-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
@@ -405,15 +405,15 @@
 // CHECK339-NOT: "-static"
 // CHECK339-NOT: "-shared"
 // CHECK339-NOT: crt0_standalone.o
-// CHECK339: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK339-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
-// CHECK339-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK339-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK339: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK339-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
+// CHECK339-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK339-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK339-SAME: "{{[^"]+}}.o"
 // CHECK339-SAME: "--start-group" "-lfirst" "-lsecond"
 // CHECK339-NOT: "-lstandalone"
 // CHECK339-SAME: "-lc" "-lgcc" "--end-group"
-// CHECK339-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// CHECK339-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 // RUN: %clang -### --target=hexagon-unknown-elf \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
@@ -423,17 +423,17 @@
 // CHECK33A: {{hexagon-link|ld}}
 // CHECK33A-NOT: "-static"
 // CHECK33A-NOT: "-shared"
-// CHECK33A:      
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
-// CHECK33A-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK33A-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
-// CHECK33A-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK33A-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK33A:      
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0_standalone.o"
+// CHECK33A-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK33A-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
+// CHECK33A-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK33A-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK33A-SAME: "{{[^"]+}}.o"
 // CHECK33A-SAME: "--start-group"
 // CHECK33A-SAME: "-lfirst" "-lsecond"
 // CHECK33A-SAME: "-lstandalone"
 // CHECK33A-SAME: "-lc" "-lgcc" "--end-group"
-// CHECK33A-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// CHECK33A-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
-
 // Other args to pass to linker
@@ -444,15 +444,15 @@
 // RUN:   -s -t -e start_here -uFoo -undefined Bar %s 2>&1 | FileCheck 
-check-prefix=CHECK33B %s
 // CHECK33B:      "-cc1"
 // CHECK33B:      ld.lld
-// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0_standalone.o"
-// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/crt0.o"
-// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/init.o"
-// CHECK33B-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60"
-// CHECK33B-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib"
+// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0_standalone.o"
+// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}crt0.o"
+// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}init.o"
+// CHECK33B-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK33B-SAME: 
"-L{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib"
 // CHECK33B-SAME: "-s" "-t" "-u" "Foo" "-undefined" "Bar"
 // CHECK33B-SAME: "{{[^"]+}}.o"
 // CHECK33B-SAME: "-lstdc++" "-lm" "--start-group" "-lstandalone" "-lc" 
"-lgcc" "--end-group"
-// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v60/fini.o"
+// CHECK33B-SAME: 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}lib{{/|\\\\}}v60{{/|\\\\}}fini.o"
 
 // 
-----------------------------------------------------------------------------
 // pic, small data threshold
@@ -589,6 +589,8 @@
 // RUN:   --sysroot=/hexagon %s 2>&1 | FileCheck -check-prefix=CHECK383 %s
 // CHECK383:          "-isysroot" "/hexagon"
 // CHECK383:          "-internal-externc-isystem" "/hexagon{{/|\\\\}}include"
+// CHECK383:          "-L/hexagon{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK383:          "-L/hexagon{{/|\\\\}}lib"
 // 
-----------------------------------------------------------------------------
 // Passing -fno-use-init-array
 // 
-----------------------------------------------------------------------------
diff --git a/clang/test/Driver/hexagon-toolchain-linux.c 
b/clang/test/Driver/hexagon-toolchain-linux.c
index e791353cca07f..92d387a13b2dc 100644
--- a/clang/test/Driver/hexagon-toolchain-linux.c
+++ b/clang/test/Driver/hexagon-toolchain-linux.c
@@ -1,5 +1,3 @@
-// UNSUPPORTED: system-windows
-
 // 
-----------------------------------------------------------------------------
 // Passing --musl
 // 
-----------------------------------------------------------------------------
@@ -12,6 +10,9 @@
 // CHECK000:      "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1"
 // CHECK000:      
"{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o"
 // CHECK000:      "-lc" "-lclang_rt.builtins-hexagon"
+// CHECK000:          
"-L{{.*}}/Inputs/basic_linux_libcxx_tree{{/|\\\\}}lib{{/|\\\\}}v60"
+// CHECK000:          "-L{{.*}}/Inputs/basic_linux_libcxx_tree{{/|\\\\}}lib"
+
 // 
-----------------------------------------------------------------------------
 // Passing --musl --shared
 // 
-----------------------------------------------------------------------------
@@ -97,23 +98,20 @@
 // RUN: %clang -### --target=hexagon-unknown-linux-musl \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -resource-dir=%S/Inputs/resource_dir %s 2>&1 | FileCheck 
-check-prefix=CHECK008 %s
-// CHECK008:   InstalledDir: [[INSTALLED_DIR:.+]]
 // CHECK008:   "-resource-dir" "[[RESOURCE:[^"]+]]"
-// CHECK008-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include"
-// CHECK008-SAME: {{^}} "-internal-externc-isystem" 
"[[INSTALLED_DIR]]/../target/hexagon/include"
+// CHECK008-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]{{/|\\\\}}include"
+// CHECK008-SAME: {{^}} "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}include"
 
 // RUN: %clang -### --target=hexagon-unknown-linux \
 // RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
 // RUN:   -resource-dir=%S/Inputs/resource_dir %s 2>&1 | FileCheck 
-check-prefix=CHECK009 %s
-// CHECK009:   InstalledDir: [[INSTALLED_DIR:.+]]
 // CHECK009:   "-resource-dir" "[[RESOURCE:[^"]+]]"
-// CHECK009-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]/include"
-// CHECK009-SAME: {{^}} "-internal-externc-isystem" 
"[[INSTALLED_DIR]]/../target/hexagon/include"
+// CHECK009-SAME: {{^}} "-internal-isystem" "[[RESOURCE]]{{/|\\\\}}include"
+// CHECK009-SAME: {{^}} "-internal-externc-isystem" 
"{{.*}}/Inputs/hexagon_tree/Tools/bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}hexagon{{/|\\\\}}include"
 
 // RUN: %clang -Werror -L/tmp \
 // RUN:    --target=hexagon-unknown-linux-musl %s -### 2>&1 \
 // RUN:    | FileCheck -check-prefix=CHECK010 %s
-// CHECK010:   InstalledDir: [[INSTALLED_DIR:.+]]
 // CHECK010-NOT:  "-lstandalone"
 // CHECK010-NOT:  crt0_standalone.o
 // CHECK010:   crt1.o
@@ -126,7 +124,6 @@
 // RUN: %clangxx --unwindlib=none \
 // RUN:    --target=hexagon-unknown-linux-musl %s -### 2>&1 \
 // RUN:    | FileCheck -check-prefix=CHECK011 %s
-// CHECK011:   InstalledDir: [[INSTALLED_DIR:.+]]
 // CHECK011:   "--eh-frame-hdr"
 // CHECK011:   crt1.o
 // CHECK011-NOT:  "-lunwind"
@@ -140,7 +137,6 @@
 // RUN: %clangxx \
 // RUN:    --target=hexagon-unknown-linux-musl %s -### 2>&1 \
 // RUN:    | FileCheck -check-prefix=CHECK012 %s
-// CHECK012:   InstalledDir: [[INSTALLED_DIR:.+]]
 // CHECK012:   crt1.o
 // CHECK012:  "-lunwind"
 // CHECK012-NOT:  "-lgcc_eh"

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to