diff options
Diffstat (limited to 'contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff')
-rw-r--r-- | contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff b/contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff new file mode 100644 index 0000000..a3c6026 --- /dev/null +++ b/contrib/llvm/patches/patch-r262262-clang-r198918-sparc.diff @@ -0,0 +1,59 @@ +Pull in r198918 from upstream clang trunk (by Jakob Stoklund Olesen): + + Locate GCC installations on SPARC systems. + +Introduced here: http://svn.freebsd.org/changeset/base/262262 + +Index: tools/clang/lib/Driver/ToolChains.cpp +=================================================================== +--- tools/clang/lib/Driver/ToolChains.cpp ++++ tools/clang/lib/Driver/ToolChains.cpp +@@ -1164,6 +1164,13 @@ void Generic_GCC::GCCInstallationDetector::print(r + "powerpc64le-suse-linux", + "ppc64le-redhat-linux" }; + ++ static const char *const SPARCv8LibDirs[] = { "/lib32", "/lib" }; ++ static const char *const SPARCv8Triples[] = { "sparc-linux-gnu", ++ "sparcv8-linux-gnu" }; ++ static const char *const SPARCv9LibDirs[] = { "/lib64", "/lib" }; ++ static const char *const SPARCv9Triples[] = { "sparc64-linux-gnu", ++ "sparcv9-linux-gnu" }; ++ + static const char *const SystemZLibDirs[] = { "/lib64", "/lib" }; + static const char *const SystemZTriples[] = { + "s390x-linux-gnu", "s390x-unknown-linux-gnu", "s390x-ibm-linux-gnu", +@@ -1283,6 +1290,26 @@ void Generic_GCC::GCCInstallationDetector::print(r + TripleAliases.append(PPC64LETriples, + PPC64LETriples + llvm::array_lengthof(PPC64LETriples)); + break; ++ case llvm::Triple::sparc: ++ LibDirs.append(SPARCv8LibDirs, ++ SPARCv8LibDirs + llvm::array_lengthof(SPARCv8LibDirs)); ++ TripleAliases.append(SPARCv8Triples, ++ SPARCv8Triples + llvm::array_lengthof(SPARCv8Triples)); ++ BiarchLibDirs.append(SPARCv9LibDirs, ++ SPARCv9LibDirs + llvm::array_lengthof(SPARCv9LibDirs)); ++ BiarchTripleAliases.append( ++ SPARCv9Triples, SPARCv9Triples + llvm::array_lengthof(SPARCv9Triples)); ++ break; ++ case llvm::Triple::sparcv9: ++ LibDirs.append(SPARCv9LibDirs, ++ SPARCv9LibDirs + llvm::array_lengthof(SPARCv9LibDirs)); ++ TripleAliases.append(SPARCv9Triples, ++ SPARCv9Triples + llvm::array_lengthof(SPARCv9Triples)); ++ BiarchLibDirs.append(SPARCv8LibDirs, ++ SPARCv8LibDirs + llvm::array_lengthof(SPARCv8LibDirs)); ++ BiarchTripleAliases.append( ++ SPARCv8Triples, SPARCv8Triples + llvm::array_lengthof(SPARCv8Triples)); ++ break; + case llvm::Triple::systemz: + LibDirs.append(SystemZLibDirs, + SystemZLibDirs + llvm::array_lengthof(SystemZLibDirs)); +@@ -1379,6 +1406,7 @@ static bool findTargetBiarchSuffix(std::string &Su + Suffix = "/n32"; + else if (TargetArch == llvm::Triple::x86_64 || + TargetArch == llvm::Triple::ppc64 || ++ TargetArch == llvm::Triple::sparcv9 || + TargetArch == llvm::Triple::systemz || + TargetArch == llvm::Triple::mips64 || + TargetArch == llvm::Triple::mips64el) |