]> granicus.if.org Git - clang/commitdiff
A couple driver fixes for PPC Linux. Patches by Michael Kostylev. PR11444/PR11445.
authorEli Friedman <eli.friedman@gmail.com>
Mon, 28 Nov 2011 23:46:52 +0000 (23:46 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Mon, 28 Nov 2011 23:46:52 +0000 (23:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145321 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp
lib/Driver/Tools.cpp

index f4209ad08a299e47abacdf17fd5d69d7b0e53c21..5ebe2828547d12b59c3eddabdb11d2cab5b96677 100644 (file)
@@ -1234,7 +1234,8 @@ Generic_GCC::GCCInstallationDetector::GCCInstallationDetector(const Driver &D)
   } else if (HostArch == llvm::Triple::ppc64) {
     static const char *const PPC64LibDirs[] = { "/lib64", "/lib" };
     static const char *const PPC64Triples[] = {
-      "powerpc64-unknown-linux-gnu"
+      "powerpc64-unknown-linux-gnu",
+      "ppc64-redhat-linux"
     };
     LibDirs.append(PPC64LibDirs,
                    PPC64LibDirs + llvm::array_lengthof(PPC64LibDirs));
index 918b4551c5798da7144b5ec913986cd3bc9ee87c..6ceb4b8a0953da09c7e8cd0c65fa537d82465cd0 100644 (file)
@@ -4249,6 +4249,14 @@ void linuxtools::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
     CmdArgs.push_back("--32");
   } else if (getToolChain().getArch() == llvm::Triple::x86_64) {
     CmdArgs.push_back("--64");
+  } else if (getToolChain().getArch() == llvm::Triple::ppc) {
+    CmdArgs.push_back("-a32");
+    CmdArgs.push_back("-mppc");
+    CmdArgs.push_back("-many");
+  } else if (getToolChain().getArch() == llvm::Triple::ppc64) {
+    CmdArgs.push_back("-a64");
+    CmdArgs.push_back("-mppc64");
+    CmdArgs.push_back("-many");
   } else if (getToolChain().getArch() == llvm::Triple::arm) {
     StringRef MArch = getToolChain().getArchName();
     if (MArch == "armv7" || MArch == "armv7a" || MArch == "armv7-a")