patch-r262262-clang-r198918-sparc.diff revision 269012
1Pull in r198918 from upstream clang trunk (by Jakob Stoklund Olesen): 2 3 Locate GCC installations on SPARC systems. 4 5Introduced here: http://svnweb.freebsd.org/changeset/base/262262 6 7Index: tools/clang/lib/Driver/ToolChains.cpp 8=================================================================== 9--- tools/clang/lib/Driver/ToolChains.cpp 10+++ tools/clang/lib/Driver/ToolChains.cpp 11@@ -1164,6 +1164,13 @@ void Generic_GCC::GCCInstallationDetector::print(r 12 "powerpc64le-suse-linux", 13 "ppc64le-redhat-linux" }; 14 15+ static const char *const SPARCv8LibDirs[] = { "/lib32", "/lib" }; 16+ static const char *const SPARCv8Triples[] = { "sparc-linux-gnu", 17+ "sparcv8-linux-gnu" }; 18+ static const char *const SPARCv9LibDirs[] = { "/lib64", "/lib" }; 19+ static const char *const SPARCv9Triples[] = { "sparc64-linux-gnu", 20+ "sparcv9-linux-gnu" }; 21+ 22 static const char *const SystemZLibDirs[] = { "/lib64", "/lib" }; 23 static const char *const SystemZTriples[] = { 24 "s390x-linux-gnu", "s390x-unknown-linux-gnu", "s390x-ibm-linux-gnu", 25@@ -1283,6 +1290,26 @@ void Generic_GCC::GCCInstallationDetector::print(r 26 TripleAliases.append(PPC64LETriples, 27 PPC64LETriples + llvm::array_lengthof(PPC64LETriples)); 28 break; 29+ case llvm::Triple::sparc: 30+ LibDirs.append(SPARCv8LibDirs, 31+ SPARCv8LibDirs + llvm::array_lengthof(SPARCv8LibDirs)); 32+ TripleAliases.append(SPARCv8Triples, 33+ SPARCv8Triples + llvm::array_lengthof(SPARCv8Triples)); 34+ BiarchLibDirs.append(SPARCv9LibDirs, 35+ SPARCv9LibDirs + llvm::array_lengthof(SPARCv9LibDirs)); 36+ BiarchTripleAliases.append( 37+ SPARCv9Triples, SPARCv9Triples + llvm::array_lengthof(SPARCv9Triples)); 38+ break; 39+ case llvm::Triple::sparcv9: 40+ LibDirs.append(SPARCv9LibDirs, 41+ SPARCv9LibDirs + llvm::array_lengthof(SPARCv9LibDirs)); 42+ TripleAliases.append(SPARCv9Triples, 43+ SPARCv9Triples + llvm::array_lengthof(SPARCv9Triples)); 44+ BiarchLibDirs.append(SPARCv8LibDirs, 45+ SPARCv8LibDirs + llvm::array_lengthof(SPARCv8LibDirs)); 46+ BiarchTripleAliases.append( 47+ SPARCv8Triples, SPARCv8Triples + llvm::array_lengthof(SPARCv8Triples)); 48+ break; 49 case llvm::Triple::systemz: 50 LibDirs.append(SystemZLibDirs, 51 SystemZLibDirs + llvm::array_lengthof(SystemZLibDirs)); 52@@ -1379,6 +1406,7 @@ static bool findTargetBiarchSuffix(std::string &Su 53 Suffix = "/n32"; 54 else if (TargetArch == llvm::Triple::x86_64 || 55 TargetArch == llvm::Triple::ppc64 || 56+ TargetArch == llvm::Triple::sparcv9 || 57 TargetArch == llvm::Triple::systemz || 58 TargetArch == llvm::Triple::mips64 || 59 TargetArch == llvm::Triple::mips64el) 60