r323193 - [Solaris] gcc toolchain handling revamp

Fedor Sergeev via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 23 14:22:49 PST 2018


I see there is a commit by Richard Trieu:
====
commit e7469bc992bca368b62364b683ddc3e20df8db27
Author: Richard Trieu <rtrieu at google.com>
Date:   Tue Jan 23 21:58:56 2018 +0000

     Fix test Driver/solaris-ld.c

     Allow test to accept calls to ld without full path
====

I'm still a bit sceptical as to whether it fixes the problem at its 
entirety.

If not I do have a fix that disables this test on Windows:
diff --git a/test/Driver/solaris-ld.c b/test/Driver/solaris-ld.c
--- a/test/Driver/solaris-ld.c
+++ b/test/Driver/solaris-ld.c
@@ -1,3 +1,5 @@
+// UNSUPPORTED: system-windows
+//
  // General tests that ld invocations on Solaris targets sane. Note 
that we use
  // sysroot to make these tests independent of the host system.

Please, let me know if Richard's fix above does not work and I will push 
my change as soon as I get awake.

regards,
   Fedor.

On 01/24/2018 12:39 AM, Fedor Sergeev wrote:
> Ugh... those slashes...
> Since I have no way to test the changes on Windows before integration
> I'm inclined to make this test unsupported for Windows.
> Otherwise I will be going step by step cleaning these slashes.
>
> That should not hurt anything since I doubt anybody has a need to 
> cross-compile into Solaris on Windows...
>
> regards,
>   Fedor.
>
> On 01/24/2018 12:28 AM, Yung, Douglas wrote:
>>
>> Hi Fedor,
>>
>> That change does not unfortunately resolve the issue:
>>
>> http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/14895:
>>
>> Failing Tests (1):
>>
>>     Clang :: Driver/solaris-ld.c
>>
>> Can you please look into it further?
>>
>> Douglas Yung
>>
>> *From:*cfe-commits [mailto:cfe-commits-bounces at lists.llvm.org] *On 
>> Behalf Of *Fedor Sergeev via cfe-commits
>> *Sent:* Tuesday, January 23, 2018 13:14
>> *To:* Galina Kistanova
>> *Cc:* cfe-commits
>> *Subject:* Re: r323193 - [Solaris] gcc toolchain handling revamp
>>
>> Fix already integrated (r323199).
>> Hopefully it solves the problem.
>>
>> regards,
>>   Fedor.
>>
>> On 01/24/2018 12:11 AM, Galina Kistanova wrote:
>>
>>     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 <mailto: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
>>     <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 <mailto: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/20180124/51b9c27a/attachment-0001.html>


More information about the cfe-commits mailing list