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