r323193 - [Solaris] gcc toolchain handling revamp

Fedor Sergeev via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 23 19:56:46 PST 2018


Ugh... I'm pretty much sure I wouldnt be able to come up with *this* 
amount of backslashes! :)
Thank you for your effort so much!

Fedor.

On 01/24/2018 03:51 AM, Yung, Douglas wrote:
>
> I think I got it working in r323285.
>
> Douglas Yung
>
> *From:*Fedor Sergeev [mailto:fedor.sergeev at azul.com]
> *Sent:* Tuesday, January 23, 2018 14:23
> *To:* Yung, Douglas; Galina Kistanova; Richard Trieu
> *Cc:* cfe-commits
> *Subject:* Re: r323193 - [Solaris] gcc toolchain handling revamp
>
> I see there is a commit by Richard Trieu:
> ====
> commit e7469bc992bca368b62364b683ddc3e20df8db27
> Author: Richard Trieu <rtrieu at google.com> <mailto: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/aac37f51/attachment-0001.html>


More information about the cfe-commits mailing list