1 Pull in r198918 from upstream clang trunk (by Jakob Stoklund Olesen):
3 Locate GCC installations on SPARC systems.
5 Introduced here: http://svnweb.freebsd.org/changeset/base/262262
7 Index: 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" };
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" };
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));
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));
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));
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
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)