r323193 - [Solaris] gcc toolchain handling revamp

Galina Kistanova via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 23 13:11:34 PST 2018


Hello Fedor,

This commit broke tests on couple of our builders:

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/14893
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win

. . .
Failing Tests (1):
    Clang :: Driver/solaris-ld.c

Please have a look?

Thanks

Galina

On Tue, Jan 23, 2018 at 4:23 AM, Fedor Sergeev via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: fedor.sergeev
> Date: Tue Jan 23 04:23:52 2018
> New Revision: 323193
>
> URL: http://llvm.org/viewvc/llvm-project?rev=323193&view=rev
> Log:
> [Solaris] gcc toolchain handling revamp
>
> Summary:
> General idea is to utilize generic (mostly Generic_GCC) code
> and get rid of Solaris-specific handling as much as possible.
>
> In particular:
> - scanLibDirForGCCTripleSolaris was removed, relying on generic
>   CollectLibDirsAndTriples
>
> - findBiarchMultilibs is now properly utilized to switch between
>    m32 and m64 include & lib paths on Solaris
>
> - C system include handling copied from Linux (bar multilib hacks)
>
> Fixes PR24606.
>
> Reviewers: dlj, rafael, jyknight, theraven, tstellar
>
> Reviewed By: jyknight
>
> Subscribers: aaron.ballman, mgorny, krytarowski, ro, joerg, cfe-commits
>
> Differential Revision: https://reviews.llvm.org/D35755
>
> Added:
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/include/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/include/c++/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/include/c++/4.8.2/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/include/c++/4.8.2/sparc-sun-solaris2.11/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/include/c++/4.8.2/sparc-sun-solaris2.11/bits/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/include/c++/4.8.2/sparc-sun-solaris2.11/bits/gthr.h
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/include/c++/4.8.2/typeinfo
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtend.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crt1.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtbegin.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtend.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtend.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/libatomic.a
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crti.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/sparcv9/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/sparcv9/libatomic.a
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crtn.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/crti.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crti.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/crtn.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crtn.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/ld.so.1
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/ld.so.1
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/sparcv9/
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/sparcv9/crti.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crti.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/sparcv9/crtn.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crtn.o
>     cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/
> sparcv9/ld.so.1
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/ld.so.1
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/include/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/include/c++/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> include/c++/4.9.4/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> include/c++/4.9.4/i386-pc-solaris2.11/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> include/c++/4.9.4/i386-pc-solaris2.11/bits/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> include/c++/4.9.4/i386-pc-solaris2.11/bits/gthr.h
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> include/c++/4.9.4/typeinfo
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/lib/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/lib/amd64/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/amd64/libatomic.a
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/amd64/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/amd64/crtbegin.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/amd64/crtend.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtend.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/crtbegin.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/crtend.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtend.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/libatomic.a
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crt1.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crti.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crti.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crtn.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crtn.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/ld.so.1
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/ld.so.1
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/crt1.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/crti.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crti.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/crtn.o
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crtn.o
>     cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/ld.so.1
>       - copied, changed from r323188, cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/ld.so.1
> Removed:
>     cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o
>     cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o
>     cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o
>     cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crti.o
>     cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crtn.o
>     cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/ld.so.1
> Modified:
>     cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
>     cfe/trunk/lib/Driver/ToolChains/Gnu.h
>     cfe/trunk/lib/Driver/ToolChains/Solaris.cpp
>     cfe/trunk/lib/Driver/ToolChains/Solaris.h
>     cfe/trunk/lib/Frontend/InitHeaderSearch.cpp
>     cfe/trunk/test/Driver/solaris-header-search.cpp
>     cfe/trunk/test/Driver/solaris-ld.c
>
> Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/
> ToolChains/Gnu.cpp?rev=323193&r1=323192&r2=323193&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Driver/ToolChains/Gnu.cpp (original)
> +++ cfe/trunk/lib/Driver/ToolChains/Gnu.cpp Tue Jan 23 04:23:52 2018
> @@ -1450,6 +1450,8 @@ static bool findBiarchMultilibs(const Dr
>                                  StringRef Path, const ArgList &Args,
>                                  bool NeedsBiarchSuffix,
>                                  DetectedMultilibs &Result) {
> +  Multilib Default;
> +
>    // Some versions of SUSE and Fedora on ppc64 put 32-bit libs
>    // in what would normally be GCCInstallPath and put the 64-bit
>    // libs in a subdirectory named 64. The simple logic we follow is that
> @@ -1457,10 +1459,26 @@ static bool findBiarchMultilibs(const Dr
>    // we use that. If not, and if not a biarch triple alias, we look for
>    // crtbegin.o without the subdirectory.
>
> -  Multilib Default;
> +  StringRef Suff64 = "/64";
> +  // Solaris uses platform-specific suffixes instead of /64.
> +  if (TargetTriple.getOS() == llvm::Triple::Solaris) {
> +    switch (TargetTriple.getArch()) {
> +    case llvm::Triple::x86:
> +    case llvm::Triple::x86_64:
> +      Suff64 = "/amd64";
> +      break;
> +    case llvm::Triple::sparc:
> +    case llvm::Triple::sparcv9:
> +      Suff64 = "/sparcv9";
> +      break;
> +    default:
> +      break;
> +    }
> +  }
> +
>    Multilib Alt64 = Multilib()
> -                       .gccSuffix("/64")
> -                       .includeSuffix("/64")
> +                       .gccSuffix(Suff64)
> +                       .includeSuffix(Suff64)
>                         .flag("-m32")
>                         .flag("+m64")
>                         .flag("-mx32");
> @@ -1657,21 +1675,17 @@ void Generic_GCC::GCCInstallationDetecto
>      // If we have a SysRoot, try that first.
>      if (!D.SysRoot.empty()) {
>        Prefixes.push_back(D.SysRoot);
> -      Prefixes.push_back(D.SysRoot + "/usr");
> +      AddDefaultGCCPrefixes(TargetTriple, Prefixes, D.SysRoot);
>      }
>
>      // Then look for gcc installed alongside clang.
>      Prefixes.push_back(D.InstalledDir + "/..");
>
> -    // Then look for distribution supplied gcc installations.
> +    // Next, look for prefix(es) that correspond to distribution-supplied
> gcc
> +    // installations.
>      if (D.SysRoot.empty()) {
> -      // Look for RHEL devtoolsets.
> -      Prefixes.push_back("/opt/rh/devtoolset-6/root/usr");
> -      Prefixes.push_back("/opt/rh/devtoolset-4/root/usr");
> -      Prefixes.push_back("/opt/rh/devtoolset-3/root/usr");
> -      Prefixes.push_back("/opt/rh/devtoolset-2/root/usr");
> -      // And finally in /usr.
> -      Prefixes.push_back("/usr");
> +      // Typically /usr.
> +      AddDefaultGCCPrefixes(TargetTriple, Prefixes, D.SysRoot);
>      }
>    }
>
> @@ -1742,6 +1756,51 @@ bool Generic_GCC::GCCInstallationDetecto
>    return false;
>  }
>
> +void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
> +    const llvm::Triple &TargetTriple, SmallVectorImpl<std::string>
> &Prefixes,
> +    StringRef SysRoot) {
> +  if (TargetTriple.getOS() == llvm::Triple::Solaris) {
> +    // Solaris is a special case.
> +    // The GCC installation is under
> +    //   /usr/gcc/<major>.<minor>/lib/gcc/<triple>/<major>.<minor>.<
> patch>/
> +    // so we need to find those /usr/gcc/*/lib/gcc libdirs and go with
> +    // /usr/gcc/<version> as a prefix.
> +
> +    std::string PrefixDir = SysRoot.str() + "/usr/gcc";
> +    std::error_code EC;
> +    for (vfs::directory_iterator LI = D.getVFS().dir_begin(PrefixDir,
> EC), LE;
> +         !EC && LI != LE; LI = LI.increment(EC)) {
> +      StringRef VersionText = llvm::sys::path::filename(LI->getName());
> +      GCCVersion CandidateVersion = GCCVersion::Parse(VersionText);
> +
> +      // Filter out obviously bad entries.
> +      if (CandidateVersion.Major == -1 || CandidateVersion.isOlderThan(4,
> 1, 1))
> +        continue;
> +
> +      std::string CandidatePrefix = PrefixDir + "/" + VersionText.str();
> +      std::string CandidateLibPath = CandidatePrefix + "/lib/gcc";
> +      if (!D.getVFS().exists(CandidateLibPath))
> +        continue;
> +
> +      Prefixes.push_back(CandidatePrefix);
> +    }
> +    return;
> +  }
> +
> +  // Non-Solaris is much simpler - most systems just go with "/usr".
> +  if (SysRoot.empty()) {
> +    // Yet, still look for RHEL devtoolsets
> +    // (should it be done Linux-only??)
> +    Prefixes.push_back("/opt/rh/devtoolset-6/root/usr");
> +    Prefixes.push_back("/opt/rh/devtoolset-4/root/usr");
> +    Prefixes.push_back("/opt/rh/devtoolset-3/root/usr");
> +    Prefixes.push_back("/opt/rh/devtoolset-2/root/usr");
> +    Prefixes.push_back("/usr");
> +  } else {
> +    Prefixes.push_back(SysRoot.str() + "/usr");
> +  }
> +}
> +
>  /*static*/ void Generic_GCC::GCCInstallationDetector::
> CollectLibDirsAndTriples(
>      const llvm::Triple &TargetTriple, const llvm::Triple &BiarchTriple,
>      SmallVectorImpl<StringRef> &LibDirs,
> @@ -1843,17 +1902,49 @@ bool Generic_GCC::GCCInstallationDetecto
>        "s390x-linux-gnu", "s390x-unknown-linux-gnu", "s390x-ibm-linux-gnu",
>        "s390x-suse-linux", "s390x-redhat-linux"};
>
> -  // Solaris.
> -  static const char *const SolarisSPARCLibDirs[] = {"/gcc"};
> -  static const char *const SolarisSPARCTriples[] =
> {"sparc-sun-solaris2.11",
> -
> "i386-pc-solaris2.11"};
>
>    using std::begin;
>    using std::end;
>
>    if (TargetTriple.getOS() == llvm::Triple::Solaris) {
> -    LibDirs.append(begin(SolarisSPARCLibDirs), end(SolarisSPARCLibDirs));
> -    TripleAliases.append(begin(SolarisSPARCTriples),
> end(SolarisSPARCTriples));
> +    static const char *const SolarisLibDirs[] = {"/lib"};
> +    static const char *const SolarisSparcV8Triples[] = {
> +        "sparc-sun-solaris2.11", "sparc-sun-solaris2.12"};
> +    static const char *const SolarisSparcV9Triples[] = {
> +        "sparcv9-sun-solaris2.11", "sparcv9-sun-solaris2.12"};
> +    static const char *const SolarisX86Triples[] = {"i386-pc-solaris2.11",
> +
> "i386-pc-solaris2.12"};
> +    static const char *const SolarisX86_64Triples[] =
> {"x86_64-pc-solaris2.11",
> +
>  "x86_64-pc-solaris2.12"};
> +    LibDirs.append(begin(SolarisLibDirs), end(SolarisLibDirs));
> +    BiarchLibDirs.append(begin(SolarisLibDirs), end(SolarisLibDirs));
> +    switch (TargetTriple.getArch()) {
> +    case llvm::Triple::x86:
> +      TripleAliases.append(begin(SolarisX86Triples),
> end(SolarisX86Triples));
> +      BiarchTripleAliases.append(begin(SolarisX86_64Triples),
> +                                 end(SolarisX86_64Triples));
> +      break;
> +    case llvm::Triple::x86_64:
> +      TripleAliases.append(begin(SolarisX86_64Triples),
> +                           end(SolarisX86_64Triples));
> +      BiarchTripleAliases.append(begin(SolarisX86Triples),
> +                                 end(SolarisX86Triples));
> +      break;
> +    case llvm::Triple::sparc:
> +      TripleAliases.append(begin(SolarisSparcV8Triples),
> +                           end(SolarisSparcV8Triples));
> +      BiarchTripleAliases.append(begin(SolarisSparcV9Triples),
> +                                 end(SolarisSparcV9Triples));
> +      break;
> +    case llvm::Triple::sparcv9:
> +      TripleAliases.append(begin(SolarisSparcV9Triples),
> +                           end(SolarisSparcV9Triples));
> +      BiarchTripleAliases.append(begin(SolarisSparcV8Triples),
> +                                 end(SolarisSparcV8Triples));
> +      break;
> +    default:
> +      break;
> +    }
>      return;
>    }
>
> @@ -2014,56 +2105,6 @@ bool Generic_GCC::GCCInstallationDetecto
>      BiarchTripleAliases.push_back(BiarchTriple.str());
>  }
>
> -void Generic_GCC::GCCInstallationDetector::scanLibDirForGCCTripleSolaris(
> -    const llvm::Triple &TargetArch, const llvm::opt::ArgList &Args,
> -    const std::string &LibDir, StringRef CandidateTriple,
> -    bool NeedsBiarchSuffix) {
> -  // Solaris is a special case. The GCC installation is under
> -  // /usr/gcc/<major>.<minor>/lib/gcc/<triple>/<major>.<minor>.<patch>/,
> so we
> -  // need to iterate twice.
> -  std::error_code EC;
> -  for (vfs::directory_iterator LI = D.getVFS().dir_begin(LibDir, EC), LE;
> -       !EC && LI != LE; LI = LI.increment(EC)) {
> -    StringRef VersionText = llvm::sys::path::filename(LI->getName());
> -    GCCVersion CandidateVersion = GCCVersion::Parse(VersionText);
> -
> -    if (CandidateVersion.Major != -1) // Filter obviously bad entries.
> -      if (!CandidateGCCInstallPaths.insert(LI->getName()).second)
> -        continue; // Saw this path before; no need to look at it again.
> -    if (CandidateVersion.isOlderThan(4, 1, 1))
> -      continue;
> -    if (CandidateVersion <= Version)
> -      continue;
> -
> -    GCCInstallPath =
> -        LibDir + "/" + VersionText.str() + "/lib/gcc/" +
> CandidateTriple.str();
> -    if (!D.getVFS().exists(GCCInstallPath))
> -      continue;
> -
> -    // If we make it here there has to be at least one GCC version, let's
> just
> -    // use the latest one.
> -    std::error_code EEC;
> -    for (vfs::directory_iterator
> -             LLI = D.getVFS().dir_begin(GCCInstallPath, EEC),
> -             LLE;
> -         !EEC && LLI != LLE; LLI = LLI.increment(EEC)) {
> -
> -      StringRef SubVersionText = llvm::sys::path::filename(LLI-
> >getName());
> -      GCCVersion CandidateSubVersion = GCCVersion::Parse(SubVersionText);
> -
> -      if (CandidateSubVersion > Version)
> -        Version = CandidateSubVersion;
> -    }
> -
> -    GCCTriple.setTriple(CandidateTriple);
> -
> -    GCCInstallPath += "/" + Version.Text;
> -    GCCParentLibPath = GCCInstallPath + "/../../../../";
> -
> -    IsValid = true;
> -  }
> -}
> -
>  bool Generic_GCC::GCCInstallationDetector::ScanGCCForMultilibs(
>      const llvm::Triple &TargetTriple, const ArgList &Args,
>      StringRef Path, bool NeedsBiarchSuffix) {
> @@ -2097,12 +2138,6 @@ void Generic_GCC::GCCInstallationDetecto
>      const llvm::Triple &TargetTriple, const ArgList &Args,
>      const std::string &LibDir, StringRef CandidateTriple,
>      bool NeedsBiarchSuffix) {
> -  if (TargetTriple.getOS() == llvm::Triple::Solaris) {
> -    scanLibDirForGCCTripleSolaris(TargetTriple, Args, LibDir,
> CandidateTriple,
> -                                  NeedsBiarchSuffix);
> -    return;
> -  }
> -
>    llvm::Triple::ArchType TargetArch = TargetTriple.getArch();
>    // Locations relative to the system lib directory where GCC's
> triple-specific
>    // directories might reside.
> @@ -2115,31 +2150,33 @@ void Generic_GCC::GCCInstallationDetecto
>      // Whether this library suffix is relevant for the triple.
>      bool Active;
>    } Suffixes[] = {
> -    // This is the normal place.
> -    {"gcc/" + CandidateTriple.str(), "../..", true},
> +      // This is the normal place.
> +      {"gcc/" + CandidateTriple.str(), "../..", true},
>
> -    // Debian puts cross-compilers in gcc-cross.
> -    {"gcc-cross/" + CandidateTriple.str(), "../..", true},
> -
> -    // The Freescale PPC SDK has the gcc libraries in
> -    // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well.
> Only do
> -    // this on Freescale triples, though, since some systems put a *lot*
> of
> -    // files in that location, not just GCC installation data.
> -    {CandidateTriple.str(), "..",
> -      TargetTriple.getVendor() == llvm::Triple::Freescale},
> -
> -    // Natively multiarch systems sometimes put the GCC triple-specific
> -    // directory within their multiarch lib directory, resulting in the
> -    // triple appearing twice.
> -    {CandidateTriple.str() + "/gcc/" + CandidateTriple.str(), "../../..",
> true},
> -
> -    // Deal with cases (on Ubuntu) where the system architecture could be
> i386
> -    // but the GCC target architecture could be (say) i686.
> -    // FIXME: It may be worthwhile to generalize this and look for a
> second
> -    // triple.
> -    {"i386-linux-gnu/gcc/" + CandidateTriple.str(), "../../..",
> -      TargetArch == llvm::Triple::x86}
> -  };
> +      // Debian puts cross-compilers in gcc-cross.
> +      {"gcc-cross/" + CandidateTriple.str(), "../..",
> +       TargetTriple.getOS() != llvm::Triple::Solaris},
> +
> +      // The Freescale PPC SDK has the gcc libraries in
> +      // <sysroot>/usr/lib/<triple>/x.y.z so have a look there as well.
> Only do
> +      // this on Freescale triples, though, since some systems put a
> *lot* of
> +      // files in that location, not just GCC installation data.
> +      {CandidateTriple.str(), "..",
> +       TargetTriple.getVendor() == llvm::Triple::Freescale},
> +
> +      // Natively multiarch systems sometimes put the GCC triple-specific
> +      // directory within their multiarch lib directory, resulting in the
> +      // triple appearing twice.
> +      {CandidateTriple.str() + "/gcc/" + CandidateTriple.str(),
> "../../..",
> +       TargetTriple.getOS() != llvm::Triple::Solaris},
> +
> +      // Deal with cases (on Ubuntu) where the system architecture could
> be i386
> +      // but the GCC target architecture could be (say) i686.
> +      // FIXME: It may be worthwhile to generalize this and look for a
> second
> +      // triple.
> +      {"i386-linux-gnu/gcc/" + CandidateTriple.str(), "../../..",
> +       (TargetArch == llvm::Triple::x86 &&
> +        TargetTriple.getOS() != llvm::Triple::Solaris)}};
>
>    for (auto &Suffix : Suffixes) {
>      if (!Suffix.Active)
>
> Modified: cfe/trunk/lib/Driver/ToolChains/Gnu.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/
> ToolChains/Gnu.h?rev=323193&r1=323192&r2=323193&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Driver/ToolChains/Gnu.h (original)
> +++ cfe/trunk/lib/Driver/ToolChains/Gnu.h Tue Jan 23 04:23:52 2018
> @@ -250,6 +250,10 @@ public:
>                               SmallVectorImpl<StringRef> &BiarchLibDirs,
>                               SmallVectorImpl<StringRef>
> &BiarchTripleAliases);
>
> +    void AddDefaultGCCPrefixes(const llvm::Triple &TargetTriple,
> +                               SmallVectorImpl<std::string> &Prefixes,
> +                               StringRef SysRoot);
> +
>      bool ScanGCCForMultilibs(const llvm::Triple &TargetTriple,
>                               const llvm::opt::ArgList &Args,
>                               StringRef Path,
> @@ -261,12 +265,6 @@ public:
>                                  StringRef CandidateTriple,
>                                  bool NeedsBiarchSuffix = false);
>
> -    void scanLibDirForGCCTripleSolaris(const llvm::Triple &TargetArch,
> -                                       const llvm::opt::ArgList &Args,
> -                                       const std::string &LibDir,
> -                                       StringRef CandidateTriple,
> -                                       bool NeedsBiarchSuffix = false);
> -
>      bool ScanGentooGccConfig(const llvm::Triple &TargetTriple,
>                               const llvm::opt::ArgList &Args,
>                               StringRef CandidateTriple,
> @@ -307,8 +305,8 @@ protected:
>    /// \brief Check whether the target triple's architecture is 32-bits.
>    bool isTarget32Bit() const { return getTriple().isArch32Bit(); }
>
> -  // FIXME: This should be final, but the Solaris tool chain does weird
> -  // things we can't easily represent.
> +  // FIXME: This should be final, but the CrossWindows toolchain does
> weird
> +  // things that can't be easily generalized.
>    void AddClangCXXStdlibIncludeArgs(
>        const llvm::opt::ArgList &DriverArgs,
>        llvm::opt::ArgStringList &CC1Args) const override;
>
> Modified: cfe/trunk/lib/Driver/ToolChains/Solaris.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/
> ToolChains/Solaris.cpp?rev=323193&r1=323192&r2=323193&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Driver/ToolChains/Solaris.cpp (original)
> +++ cfe/trunk/lib/Driver/ToolChains/Solaris.cpp Tue Jan 23 04:23:52 2018
> @@ -122,6 +122,21 @@ void solaris::Linker::ConstructJob(Compi
>    C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs,
> Inputs));
>  }
>
> +static StringRef getSolarisLibSuffix(const llvm::Triple &Triple) {
> +  switch (Triple.getArch()) {
> +  case llvm::Triple::x86:
> +  case llvm::Triple::sparc:
> +    break;
> +  case llvm::Triple::x86_64:
> +    return "/amd64";
> +  case llvm::Triple::sparcv9:
> +    return "/sparcv9";
> +  default:
> +    llvm_unreachable("Unsupported architecture");
> +  }
> +  return "";
> +}
> +
>  /// Solaris - Solaris tool chain which can call as(1) and ld(1) directly.
>
>  Solaris::Solaris(const Driver &D, const llvm::Triple &Triple,
> @@ -130,32 +145,24 @@ Solaris::Solaris(const Driver &D, const
>
>    GCCInstallation.init(Triple, Args);
>
> +  StringRef LibSuffix = getSolarisLibSuffix(Triple);
>    path_list &Paths = getFilePaths();
> -  if (GCCInstallation.isValid())
> -    addPathIfExists(D, GCCInstallation.getInstallPath(), Paths);
> -
> -  addPathIfExists(D, getDriver().getInstalledDir(), Paths);
> -  if (getDriver().getInstalledDir() != getDriver().Dir)
> -    addPathIfExists(D, getDriver().Dir, Paths);
> -
> -  addPathIfExists(D, getDriver().SysRoot + getDriver().Dir + "/../lib",
> Paths);
> -
> -  std::string LibPath = "/usr/lib/";
> -  switch (Triple.getArch()) {
> -  case llvm::Triple::x86:
> -  case llvm::Triple::sparc:
> -    break;
> -  case llvm::Triple::x86_64:
> -    LibPath += "amd64/";
> -    break;
> -  case llvm::Triple::sparcv9:
> -    LibPath += "sparcv9/";
> -    break;
> -  default:
> -    llvm_unreachable("Unsupported architecture");
> +  if (GCCInstallation.isValid()) {
> +    // On Solaris gcc uses both an architecture-specific path with triple
> in it
> +    // as well as a more generic lib path (+arch suffix).
> +    addPathIfExists(D,
> +                    GCCInstallation.getInstallPath() +
> +                        GCCInstallation.getMultilib().gccSuffix(),
> +                    Paths);
> +    addPathIfExists(D, GCCInstallation.getParentLibPath() + LibSuffix,
> Paths);
>    }
>
> -  addPathIfExists(D, getDriver().SysRoot + LibPath, Paths);
> +  // If we are currently running Clang inside of the requested system
> root,
> +  // add its parent library path to those searched.
> +  if (StringRef(D.Dir).startswith(D.SysRoot))
> +    addPathIfExists(D, D.Dir + "/../lib", Paths);
> +
> +  addPathIfExists(D, D.SysRoot + "/usr/lib" + LibSuffix, Paths);
>  }
>
>  Tool *Solaris::buildAssembler() const {
> @@ -164,30 +171,72 @@ Tool *Solaris::buildAssembler() const {
>
>  Tool *Solaris::buildLinker() const { return new
> tools::solaris::Linker(*this); }
>
> -void Solaris::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
> -                                           ArgStringList &CC1Args) const {
> -  if (DriverArgs.hasArg(options::OPT_nostdlibinc) ||
> -      DriverArgs.hasArg(options::OPT_nostdincxx))
> +void Solaris::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
> +                                        ArgStringList &CC1Args) const {
> +  const Driver &D = getDriver();
> +
> +  if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
>      return;
>
> -  // Include the support directory for things like xlocale and fudged
> system
> -  // headers.
> -  // FIXME: This is a weird mix of libc++ and libstdc++. We should also be
> -  // checking the value of -stdlib= here and adding the includes for
> libc++
> -  // rather than libstdc++ if it's requested.
> -  addSystemInclude(DriverArgs, CC1Args, "/usr/include/c++/v1/support/
> solaris");
> +  if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
> +    addSystemInclude(DriverArgs, CC1Args, D.SysRoot +
> "/usr/local/include");
>
> +  if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
> +    SmallString<128> P(D.ResourceDir);
> +    llvm::sys::path::append(P, "include");
> +    addSystemInclude(DriverArgs, CC1Args, P);
> +  }
> +
> +  if (DriverArgs.hasArg(options::OPT_nostdlibinc))
> +    return;
> +
> +  // Check for configure-time C include directories.
> +  StringRef CIncludeDirs(C_INCLUDE_DIRS);
> +  if (CIncludeDirs != "") {
> +    SmallVector<StringRef, 5> dirs;
> +    CIncludeDirs.split(dirs, ":");
> +    for (StringRef dir : dirs) {
> +      StringRef Prefix =
> +          llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
> +      addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
> +    }
> +    return;
> +  }
> +
> +  // Add include directories specific to the selected multilib set and
> multilib.
>    if (GCCInstallation.isValid()) {
> -    GCCVersion Version = GCCInstallation.getVersion();
> -    addSystemInclude(DriverArgs, CC1Args,
> -                     getDriver().SysRoot + "/usr/gcc/" +
> -                     Version.MajorStr + "." +
> -                     Version.MinorStr +
> -                     "/include/c++/" + Version.Text);
> -    addSystemInclude(DriverArgs, CC1Args,
> -                     getDriver().SysRoot + "/usr/gcc/" + Version.MajorStr
> +
> -                     "." + Version.MinorStr + "/include/c++/" +
> -                     Version.Text + "/" +
> -                     GCCInstallation.getTriple().str());
> +    const MultilibSet::IncludeDirsFunc &Callback =
> +        Multilibs.includeDirsCallback();
> +    if (Callback) {
> +      for (const auto &Path : Callback(GCCInstallation.getMultilib()))
> +        addExternCSystemIncludeIfExists(
> +            DriverArgs, CC1Args, GCCInstallation.getInstallPath() +
> Path);
> +    }
>    }
> +
> +  addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot +
> "/usr/include");
> +}
> +
> +void Solaris::addLibStdCxxIncludePaths(
> +    const llvm::opt::ArgList &DriverArgs,
> +    llvm::opt::ArgStringList &CC1Args) const {
> +  // We need a detected GCC installation on Solaris (similar to Linux)
> +  // to provide libstdc++'s headers.
> +  if (!GCCInstallation.isValid())
> +    return;
> +
> +  // By default, look for the C++ headers in an include directory
> adjacent to
> +  // the lib directory of the GCC installation.
> +  // On Solaris this usually looks like /usr/gcc/X.Y/include/c++/X.Y.Z
> +  StringRef LibDir = GCCInstallation.getParentLibPath();
> +  StringRef TripleStr = GCCInstallation.getTriple().str();
> +  const Multilib &Multilib = GCCInstallation.getMultilib();
> +  const GCCVersion &Version = GCCInstallation.getVersion();
> +
> +  // The primary search for libstdc++ supports multiarch variants.
> +  addLibStdCXXIncludePaths(LibDir.str() + "/../include", "/c++/" +
> Version.Text,
> +                           TripleStr,
> +                           /*GCCMultiarchTriple*/ "",
> +                           /*TargetMultiarchTriple*/ "",
> +                           Multilib.includeSuffix(), DriverArgs, CC1Args);
>  }
>
> Modified: cfe/trunk/lib/Driver/ToolChains/Solaris.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/
> ToolChains/Solaris.h?rev=323193&r1=323192&r2=323193&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Driver/ToolChains/Solaris.h (original)
> +++ cfe/trunk/lib/Driver/ToolChains/Solaris.h Tue Jan 23 04:23:52 2018
> @@ -57,9 +57,13 @@ public:
>
>    bool IsIntegratedAssemblerDefault() const override { return true; }
>
> -  void AddClangCXXStdlibIncludeArgs(
> -      const llvm::opt::ArgList &DriverArgs,
> -      llvm::opt::ArgStringList &CC1Args) const override;
> +  void
> +  AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
> +                            llvm::opt::ArgStringList &CC1Args) const
> override;
> +
> +  void
> +  addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
> +                           llvm::opt::ArgStringList &CC1Args) const
> override;
>
>    unsigned GetDefaultDwarfVersion() const override { return 2; }
>
>
> Modified: cfe/trunk/lib/Frontend/InitHeaderSearch.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/
> Frontend/InitHeaderSearch.cpp?rev=323193&r1=323192&r2=323193&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Frontend/InitHeaderSearch.cpp (original)
> +++ cfe/trunk/lib/Frontend/InitHeaderSearch.cpp Tue Jan 23 04:23:52 2018
> @@ -255,6 +255,7 @@ void InitHeaderSearch::AddDefaultCInclud
>
>    switch (os) {
>    case llvm::Triple::Linux:
> +  case llvm::Triple::Solaris:
>      llvm_unreachable("Include management is handled in the driver.");
>
>    case llvm::Triple::CloudABI: {
> @@ -396,6 +397,7 @@ AddDefaultCPlusPlusIncludePaths(const ll
>
>    switch (os) {
>    case llvm::Triple::Linux:
> +  case llvm::Triple::Solaris:
>      llvm_unreachable("Include management is handled in the driver.");
>      break;
>    case llvm::Triple::Win32:
> @@ -443,6 +445,7 @@ void InitHeaderSearch::AddDefaultInclude
>      break; // Everything else continues to use this routine's logic.
>
>    case llvm::Triple::Linux:
> +  case llvm::Triple::Solaris:
>      return;
>
>    case llvm::Triple::Win32:
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/include/c++/4.8.2/sparc-sun-solaris2.11/bits/gthr.h (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/include/c%2B%2B/4.8.2/
> sparc-sun-solaris2.11/bits/gthr.h?p2=cfe/trunk/test/
> Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/include/c%2B%
> 2B/4.8.2/sparc-sun-solaris2.11/bits/gthr.h&p1=cfe/trunk/
> test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crt1.o&r1=323188&r2=323193&
> rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/include/c++/4.8.2/typeinfo
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/include/c%2B%2B/4.8.2/
> typeinfo?p2=cfe/trunk/test/Driver/Inputs/solaris_sparc_
> tree/usr/gcc/4.8/include/c%2B%2B/4.8.2/typeinfo&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o&
> r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o?p2=cfe/trunk/test/Driver/Inputs/
> solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.
> 11/4.8.2/crt1.o&p1=cfe/trunk/test/Driver/Inputs/sparc-sun-
> solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.
> 2/crt1.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o?p2=cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o&p1=cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtend.o?p2=cfe/trunk/test/Driver/Inputs/
> solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.
> 11/4.8.2/crtend.o&p1=cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtend.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crt1.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/sparcv9/crt1.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/
> sparc-sun-solaris2.11/4.8.2/sparcv9/crt1.o&p1=cfe/trunk/
> test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crt1.o&r1=323188&r2=323193&
> rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtbegin.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/sparcv9/crtbegin.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/
> sparc-sun-solaris2.11/4.8.2/sparcv9/crtbegin.o&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o&
> r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtend.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/sparcv9/crtend.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/gcc/
> sparc-sun-solaris2.11/4.8.2/sparcv9/crtend.o&p1=cfe/trunk/
> test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crtend.o&r1=323188&r2=
> 323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/libatomic.a
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crti.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/libatomic.a?p2=
> cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.
> 8/lib/libatomic.a&p1=cfe/trunk/test/Driver/Inputs/
> sparc-sun-solaris2.11/usr/lib/crti.o&r1=323188&r2=323193&
> rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/sparcv9/libatomic.a
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crtn.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/gcc/4.8/lib/sparcv9/libatomic.
> a?p2=cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/
> gcc/4.8/lib/sparcv9/libatomic.a&p1=cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/lib/crtn.o&r1=323188&r2=
> 323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/crti.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crti.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/lib/crti.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_sparc_tree/usr/lib/crti.o&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crti.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/crtn.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crtn.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/lib/crtn.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_sparc_tree/usr/lib/crtn.o&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crtn.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/ld.so.1
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> ld.so.1)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/lib/ld.so.1?p2=cfe/trunk/test/
> Driver/Inputs/solaris_sparc_tree/usr/lib/ld.so.1&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> ld.so.1&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/sparcv9/crti.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crti.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/lib/sparcv9/crti.o?p2=cfe/
> trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/
> sparcv9/crti.o&p1=cfe/trunk/test/Driver/Inputs/sparc-sun-
> solaris2.11/usr/lib/crti.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/sparcv9/crtn.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crtn.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/lib/sparcv9/crtn.o?p2=cfe/
> trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/
> sparcv9/crtn.o&p1=cfe/trunk/test/Driver/Inputs/sparc-sun-
> solaris2.11/usr/lib/crtn.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/sparcv9/ld.so.1
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> ld.so.1)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_sparc_tree/usr/lib/sparcv9/ld.so.1?p2=cfe/
> trunk/test/Driver/Inputs/solaris_sparc_tree/usr/lib/
> sparcv9/ld.so.1&p1=cfe/trunk/test/Driver/Inputs/sparc-sun-
> solaris2.11/usr/lib/ld.so.1&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> include/c++/4.9.4/i386-pc-solaris2.11/bits/gthr.h (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/include/c%2B%2B/4.9.4/
> i386-pc-solaris2.11/bits/gthr.h?p2=cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/include/c%2B%2B/4.9.4/
> i386-pc-solaris2.11/bits/gthr.h&p1=cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/include/c++/4.9.4/typeinfo
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/include/c%2B%2B/4.9.4/
> typeinfo?p2=cfe/trunk/test/Driver/Inputs/solaris_x86_
> tree/usr/gcc/4.9/include/c%2B%2B/4.9.4/typeinfo&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o&r1=
> 323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/lib/amd64/libatomic.a
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/lib/amd64/libatomic.a?
> p2=cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/
> gcc/4.9/lib/amd64/libatomic.a&p1=cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/amd64/crtbegin.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-pc-
> solaris2.11/4.9.4/amd64/crtbegin.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-
> pc-solaris2.11/4.9.4/amd64/crtbegin.o&p1=cfe/trunk/test/
> Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o&r1=323188&r2=
> 323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/amd64/crtend.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-pc-
> solaris2.11/4.9.4/amd64/crtend.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-
> pc-solaris2.11/4.9.4/amd64/crtend.o&p1=cfe/trunk/test/
> Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crtend.o&r1=323188&r2=
> 323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/crtbegin.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-pc-
> solaris2.11/4.9.4/crtbegin.o?p2=cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-pc-
> solaris2.11/4.9.4/crtbegin.o&p1=cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/crtend.o (from r323188,
> cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-pc-
> solaris2.11/4.9.4/crtend.o?p2=cfe/trunk/test/Driver/Inputs/
> solaris_x86_tree/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.
> 9.4/crtend.o&p1=cfe/trunk/test/Driver/Inputs/sparc-sun-
> solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.
> 2/crtend.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/lib/libatomic.a
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/gcc/4.9/lib/libatomic.a?p2=
> cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/gcc/4.9/
> lib/libatomic.a&p1=cfe/trunk/test/Driver/Inputs/sparc-sun-
> solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.
> 2/crt1.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crt1.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/amd64/crt1.o?p2=cfe/trunk/
> test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crt1.o&
> p1=cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/
> usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o&r1=
> 323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crti.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crti.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/amd64/crti.o?p2=cfe/trunk/
> test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crti.o&
> p1=cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/
> usr/lib/crti.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crtn.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crtn.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/amd64/crtn.o?p2=cfe/trunk/
> test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/crtn.o&
> p1=cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/
> usr/lib/crtn.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/amd64/ld.so.1
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> ld.so.1)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/amd64/ld.so.1?p2=cfe/
> trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/
> amd64/ld.so.1&p1=cfe/trunk/test/Driver/Inputs/sparc-sun-
> solaris2.11/usr/lib/ld.so.1&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/crt1.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/crt1.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_x86_tree/usr/lib/crt1.o&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o&r1=
> 323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/crti.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crti.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/crti.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_x86_tree/usr/lib/crti.o&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crti.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/crtn.o
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crtn.o)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/crtn.o?p2=cfe/trunk/test/
> Driver/Inputs/solaris_x86_tree/usr/lib/crtn.o&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> crtn.o&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Copied: cfe/trunk/test/Driver/Inputs/solaris_x86_tree/usr/lib/ld.so.1
> (from r323188, cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> ld.so.1)
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/solaris_x86_tree/usr/lib/ld.so.1?p2=cfe/trunk/test/
> Driver/Inputs/solaris_x86_tree/usr/lib/ld.so.1&p1=cfe/
> trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> ld.so.1&r1=323188&r2=323193&rev=323193&view=diff
> ============================================================
> ==================
>     (empty)
>
> Removed: cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crt1.o
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crt1.o?rev=323192&view=auto
> ============================================================
> ==================
>     (empty)
>
> Removed: cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtbegin.o?rev=323192&view=auto
> ============================================================
> ==================
>     (empty)
>
> Removed: cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/gcc/
> 4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2/crtend.o
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/gcc/4.8/lib/gcc/sparc-sun-
> solaris2.11/4.8.2/crtend.o?rev=323192&view=auto
> ============================================================
> ==================
>     (empty)
>
> Removed: cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crti.o
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/lib/crti.o?rev=323192&view=auto
> ============================================================
> ==================
>     (empty)
>
> Removed: cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/crtn.o
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/lib/crtn.o?rev=323192&view=auto
> ============================================================
> ==================
>     (empty)
>
> Removed: cfe/trunk/test/Driver/Inputs/sparc-sun-solaris2.11/usr/lib/
> ld.so.1
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> Inputs/sparc-sun-solaris2.11/usr/lib/ld.so.1?rev=323192&view=auto
> ============================================================
> ==================
>     (empty)
>
> Modified: cfe/trunk/test/Driver/solaris-header-search.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> solaris-header-search.cpp?rev=323193&r1=323192&r2=323193&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/solaris-header-search.cpp (original)
> +++ cfe/trunk/test/Driver/solaris-header-search.cpp Tue Jan 23 04:23:52
> 2018
> @@ -1,11 +1,41 @@
> -// Test that the C++ headers are found.
> +// Test that the C++ headers are found on Solaris with gcc toolchain
> detection
>  //
> -// RUN: %clang -no-canonical-prefixes %s -### 2>&1 \
> +// Sparc, 32bit
> +// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
>  // RUN:     --target=sparc-sun-solaris2.11 \
> -// RUN:     --gcc-toolchain="" \
> -// RUN:     --sysroot=%S/Inputs/sparc-sun-solaris2.11 \
> -// RUN:   | FileCheck %s
> -// CHECK: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
> -// CHECK: "-internal-isystem" "{{.*}}/usr/include/c++/v1/support/solaris"
> -// CHECK: "-internal-isystem" "{{.*}}/usr/gcc/4.8/include/c++/4.8.2"
> -// CHECK: "-internal-isystem" "{{.*}}/usr/gcc/4.8/include/c+
> +/4.8.2/sparc-sun-solaris2.11"
> +// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK_SOLARIS_SPARC %s
> +// CHECK_SOLARIS_SPARC: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
> +// CHECK_SOLARIS_SPARC-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK_SOLARIS_SPARC-SAME: "-internal-isystem"
> "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.
> 2/../../../../include/c++/4.8.2"
> +// CHECK_SOLARIS_SPARC-SAME: "-internal-isystem"
> "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.
> 2/../../../../include/c++/4.8.2/sparc-sun-solaris2.11"
> +
> +// Sparc, 64bit
> +// RUN: %clang -no-canonical-prefixes -m64 %s -### -fsyntax-only 2>&1 \
> +// RUN:     --target=sparc-sun-solaris2.11 \
> +// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK_SOLARIS_SPARC64 %s
> +// CHECK_SOLARIS_SPARC64: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
> +// CHECK_SOLARIS_SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK_SOLARIS_SPARC64-SAME: "-internal-isystem"
> "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.
> 2/../../../../include/c++/4.8.2"
> +// CHECK_SOLARIS_SPARC64-SAME: "-internal-isystem"
> "[[SYSROOT]]/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.
> 2/../../../../include/c++/4.8.2/sparc-sun-solaris2.11/sparcv9"
> +
> +// Intel, 32bit
> +// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
> +// RUN:     --target=i386-pc-solaris2.11 \
> +// RUN:     --sysroot=%S/Inputs/solaris_x86_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK_SOLARIS_X86 %s
> +// CHECK_SOLARIS_X86: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
> +// CHECK_SOLARIS_X86-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK_SOLARIS_X86-SAME: "-internal-isystem"
> "{{.*}}/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../.
> ./../../include/c++/4.9.4"
> +// CHECK_SOLARIS_X86-SAME: "-internal-isystem"
> "{{.*}}/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/../.
> ./../../include/c++/4.9.4/i386-pc-solaris2.11"
> +
> +// Intel, 64bit
> +// RUN: %clang -no-canonical-prefixes -m64 %s -### -fsyntax-only 2>&1 \
> +// RUN:     --target=i386-pc-solaris2.11 \
> +// RUN:     --sysroot=%S/Inputs/solaris_x86_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK_SOLARIS_X64 %s
> +// CHECK_SOLARIS_X64: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
> +// CHECK_SOLARIS_X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK_SOLARIS_X64-SAME: "-internal-isystem"
> "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/
> ../../../../include/c++/4.9.4"
> +// CHECK_SOLARIS_X64-SAME: "-internal-isystem"
> "[[SYSROOT]]/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/
> ../../../../include/c++/4.9.4/i386-pc-solaris2.11/amd64"
>
> Modified: cfe/trunk/test/Driver/solaris-ld.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> solaris-ld.c?rev=323193&r1=323192&r2=323193&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/solaris-ld.c (original)
> +++ cfe/trunk/test/Driver/solaris-ld.c Tue Jan 23 04:23:52 2018
> @@ -1,33 +1,105 @@
> -// Test ld invocation on Solaris targets.
> +// General tests that ld invocations on Solaris targets sane. Note that
> we use
> +// sysroot to make these tests independent of the host system.
>
> -// Check sparc-sun-solaris2.1
> +// Check sparc-sun-solaris2.11, 32bit
>  // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
>  // RUN:     --target=sparc-sun-solaris2.11 \
> -// RUN:     --gcc-toolchain="" \
> -// RUN:     --sysroot=%S/Inputs/sparc-sun-solaris2.11 \
> -// RUN:   | FileCheck %s
> -// CHECK: "-cc1" "-triple" "sparc-sun-solaris2.11"
> -// CHECK: ld{{.*}}"
> -// CHECK: "--dynamic-linker" "{{.*}}/usr/lib/ld.so.1"
> -// CHECK: "{{.*}}/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/
> |\\\\}}crt1.o"
> -// CHECK: "{{.*}}/usr/lib/crti.o"
> -// CHECK: "{{.*}}/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/
> |\\\\}}crtbegin.o"
> -// CHECK: "{{.*}}/usr/gcc/4.8/lib/gcc/sparc-sun-solaris2.11/4.8.2{{/
> |\\\\}}crtend.o"
> -// CHECK: "{{.*}}/usr/lib/crtn.o"
> -// CHECK "-lc"
> -// CHECK "-lgcc_s"
> -// CHECK "-lgcc"
> -// CHECK "-lm"
> +// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK-LD-SPARC32 %s
> +// CHECK-LD-SPARC32-NOT: warning:
> +// CHECK-LD-SPARC32: {{.*/clang}}" "-cc1" "-triple"
> "sparc-sun-solaris2.11"
> +// CHECK-LD-SPARC32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK-LD-SPARC32: {{.*/ld}}"
> +// CHECK-LD-SPARC32-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/ld.so.1"
> +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crt1.o"
> +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib/crti.o"
> +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crtbegin.o"
> +// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/
> lib/gcc/sparc-sun-solaris2.11/4.8.2"
> +// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/
> lib/gcc/sparc-sun-solaris2.11/4.8.2/../../.."
> +// CHECK-LD-SPARC32-SAME: "-L[[SYSROOT]]/usr/lib"
> +// CHECK-LD-SPARC32-SAME: "-lgcc_s"
> +// CHECK-LD-SPARC32-SAME: "-lc"
> +// CHECK-LD-SPARC32-SAME: "-lgcc"
> +// CHECK-LD-SPARC32-SAME: "-lm"
> +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/crtend.o"
> +// CHECK-LD-SPARC32-SAME: "[[SYSROOT]]/usr/lib/crtn.o"
> +
> +// Check sparc-sun-solaris2.11, 64bit
> +// RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \
> +// RUN:     --target=sparc-sun-solaris2.11 \
> +// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK-LD-SPARC64 %s
> +// CHECK-LD-SPARC64-NOT: warning:
> +// CHECK-LD-SPARC64: {{.*/clang}}" "-cc1" "-triple"
> "sparcv9-sun-solaris2.11"
> +// CHECK-LD-SPARC64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK-LD-SPARC64: {{.*/ld}}"
> +// CHECK-LD-SPARC64-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/sparcv9/
> ld.so.1"
> +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crt1.o"
> +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9/crti.o"
> +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtbegin.o"
> +// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/
> lib/gcc/sparc-sun-solaris2.11/4.8.2/sparcv9"
> +// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/gcc/4.8/
> lib/gcc/sparc-sun-solaris2.11/4.8.2/../../../sparcv9"
> +// CHECK-LD-SPARC64-SAME: "-L[[SYSROOT]]/usr/lib/sparcv9"
> +// CHECK-LD-SPARC64-SAME: "-lgcc_s"
> +// CHECK-LD-SPARC64-SAME: "-lc"
> +// CHECK-LD-SPARC64-SAME: "-lgcc"
> +// CHECK-LD-SPARC64-SAME: "-lm"
> +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/gcc/4.8/lib/
> gcc/sparc-sun-solaris2.11/4.8.2/sparcv9/crtend.o"
> +// CHECK-LD-SPARC64-SAME: "[[SYSROOT]]/usr/lib/sparcv9/crtn.o"
> +
> +// Check i386-pc-solaris2.11, 32bit
> +// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
> +// RUN:     --target=i386-pc-solaris2.11 \
> +// RUN:     --sysroot=%S/Inputs/solaris_x86_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK-LD-X32 %s
> +// CHECK-LD-X32-NOT: warning:
> +// CHECK-LD-X32: {{.*/clang}}" "-cc1" "-triple" "i386-pc-solaris2.11"
> +// CHECK-LD-X32-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK-LD-X32: {{.*/ld}}"
> +// CHECK-LD-X32-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/ld.so.1"
> +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib/crt1.o"
> +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib/crti.o"
> +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/
> gcc/i386-pc-solaris2.11/4.9.4/crtbegin.o"
> +// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4"
> +// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/../../.."
> +// CHECK-LD-X32-SAME: "-L[[SYSROOT]]/usr/lib"
> +// CHECK-LD-X32-SAME: "-lgcc_s"
> +// CHECK-LD-X32-SAME: "-lc"
> +// CHECK-LD-X32-SAME: "-lgcc"
> +// CHECK-LD-X32-SAME: "-lm"
> +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/
> gcc/i386-pc-solaris2.11/4.9.4/crtend.o"
> +// CHECK-LD-X32-SAME: "[[SYSROOT]]/usr/lib/crtn.o"
> +
> +// Check i386-pc-solaris2.11, 64bit
> +// RUN: %clang -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 \
> +// RUN:     --target=i386-pc-solaris2.11 \
> +// RUN:     --sysroot=%S/Inputs/solaris_x86_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK-LD-X64 %s
> +// CHECK-LD-X64-NOT: warning:
> +// CHECK-LD-X64: {{.*/clang}}" "-cc1" "-triple" "x86_64-pc-solaris2.11"
> +// CHECK-LD-X64-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
> +// CHECK-LD-X64: {{.*/ld}}"
> +// CHECK-LD-X64-SAME: "--dynamic-linker" "[[SYSROOT]]/usr/lib/amd64/ld.
> so.1"
> +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64/crt1.o"
> +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64/crti.o"
> +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/
> gcc/i386-pc-solaris2.11/4.9.4/amd64/crtbegin.o"
> +// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/amd64"
> +// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/gcc/4.9/
> lib/gcc/i386-pc-solaris2.11/4.9.4/../../../amd64"
> +// CHECK-LD-X64-SAME: "-L[[SYSROOT]]/usr/lib/amd64"
> +// CHECK-LD-X64-SAME: "-lgcc_s"
> +// CHECK-LD-X64-SAME: "-lc"
> +// CHECK-LD-X64-SAME: "-lgcc"
> +// CHECK-LD-X64-SAME: "-lm"
> +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/gcc/4.9/lib/
> gcc/i386-pc-solaris2.11/4.9.4/amd64/crtend.o"
> +// CHECK-LD-X64-SAME: "[[SYSROOT]]/usr/lib/amd64/crtn.o"
>
>  // Check the right -l flags are present with -shared
>  // RUN: %clang -no-canonical-prefixes %s -### -o %t.o -shared 2>&1 \
>  // RUN:     --target=sparc-sun-solaris2.11 \
> -// RUN:     --gcc-toolchain="" \
> -// RUN:     --sysroot=%S/Inputs/sparc-sun-solaris2.11 \
> -// RUN:   | FileCheck --check-prefix=CHECK-SHARED %s
> -
> -// CHECK-SHARED: ld{{.*}}"
> -// CHECK-SHARED "-lc"
> -// CHECK-SHARED "-lgcc_s"
> -// CHECK-SHARED-NOT "-lgcc"
> -// CHECK-SHARED-NOT: "-lm"
> +// RUN:     --sysroot=%S/Inputs/solaris_sparc_tree \
> +// RUN:   | FileCheck --check-prefix=CHECK-SPARC32-SHARED %s
> +// CHECK-SPARC32-SHARED: {{.*/ld}}"
> +// CHECK-SPARC32-SHARED-SAME: "-lgcc_s"
> +// CHECK-SPARC32-SHARED-SAME: "-lc"
> +// CHECK-SPARC32-SHARED-NOT: "-lgcc"
> +// CHECK-SPARC32-SHARED-NOT: "-lm"
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180123/74eba0f1/attachment-0001.html>


More information about the cfe-commits mailing list