summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2014-02-02 22:59:16 +0000
committerJoerg Sonnenberger <joerg@bec.de>2014-02-02 22:59:16 +0000
commite7f9759fd962a411a2f50e6a017ad0073ab5a963 (patch)
tree6588a6f9c9458c97802fbc9c8d38643023decee4 /clang/lib
parentd68c6504892b74535096264800c502a0d04b07f3 (diff)
downloadbcm5719-llvm-e7f9759fd962a411a2f50e6a017ad0073ab5a963.tar.gz
bcm5719-llvm-e7f9759fd962a411a2f50e6a017ad0073ab5a963.zip
Handle O32/N64 ABIs for NetBSD/MIPS64. From Matt Thomas.
llvm-svn: 200668
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/ToolChains.cpp7
-rw-r--r--clang/lib/Driver/Tools.cpp16
2 files changed, 23 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 00341728b1e..9c4213bc18d 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -2248,6 +2248,13 @@ NetBSD::NetBSD(const Driver &D, const llvm::Triple& Triple, const ArgList &Args)
break;
}
break;
+ case llvm::Triple::mips64:
+ case llvm::Triple::mips64el:
+ if (hasMipsABIArg(Args, "o32"))
+ getFilePaths().push_back("=/usr/lib/o32");
+ else if (hasMipsABIArg(Args, "64"))
+ getFilePaths().push_back("=/usr/lib/64");
+ break;
default:
break;
}
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 4bfc272f743..10194b1dda7 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -6132,6 +6132,22 @@ void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
break;
}
break;
+ case llvm::Triple::mips64:
+ case llvm::Triple::mips64el:
+ if (hasMipsABIArg(Args, "32")) {
+ CmdArgs.push_back("-m");
+ if (getToolChain().getArch() == llvm::Triple::mips64)
+ CmdArgs.push_back("elf32btsmip");
+ else
+ CmdArgs.push_back("elf32ltsmip");
+ } else if (hasMipsABIArg(Args, "64")) {
+ CmdArgs.push_back("-m");
+ if (getToolChain().getArch() == llvm::Triple::mips64)
+ CmdArgs.push_back("elf64btsmip");
+ else
+ CmdArgs.push_back("elf64ltsmip");
+ }
+ break;
default:
break;
}
OpenPOWER on IntegriCloud