]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / patches / patch-r262262-clang-r198918-sparc.diff
1 Pull in r198918 from upstream clang trunk (by Jakob Stoklund Olesen):
2
3   Locate GCC installations on SPARC systems.
4
5 Introduced here: http://svnweb.freebsd.org/changeset/base/262262
6
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" };
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)