summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-12-16 23:30:41 +0000
committerDan Gohman <dan433584@gmail.com>2015-12-16 23:30:41 +0000
commit5281686cddaa2171d46a1d3af2af3e6178e7fc17 (patch)
treef71bf89b717af6f1a36e707df7c126ea90df937d /clang/lib/Driver/ToolChains.cpp
parent417295381308b9af6e431d3ceb42b4770969bc96 (diff)
downloadbcm5719-llvm-5281686cddaa2171d46a1d3af2af3e6178e7fc17.tar.gz
bcm5719-llvm-5281686cddaa2171d46a1d3af2af3e6178e7fc17.zip
[WebAssembly] Initial linking support.
This begins minimal support for invoking 'ld' from clang for WebAssembly targets. Differential Revision: http://reviews.llvm.org/D15586 llvm-svn: 255848
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r--clang/lib/Driver/ToolChains.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 0921bc19947..4cf4ca0ca34 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -4418,6 +4418,13 @@ Tool *MyriadToolChain::buildLinker() const {
return new tools::Myriad::Linker(*this);
}
+WebAssembly::WebAssembly(const Driver &D, const llvm::Triple &Triple,
+ const llvm::opt::ArgList &Args)
+ : ToolChain(D, Triple, Args) {
+ // Use LLD by default.
+ DefaultLinker = "lld";
+}
+
bool WebAssembly::IsMathErrnoDefault() const { return false; }
bool WebAssembly::IsObjCNonFragileABIDefault() const { return true; }
@@ -4440,6 +4447,8 @@ bool WebAssembly::hasBlocksRuntime() const { return false; }
// TODO: Support profiling.
bool WebAssembly::SupportsProfiling() const { return false; }
+bool WebAssembly::HasNativeLLVMSupport() const { return true; }
+
void WebAssembly::addClangTargetOptions(const ArgList &DriverArgs,
ArgStringList &CC1Args) const {
if (DriverArgs.hasFlag(options::OPT_fuse_init_array,
@@ -4447,6 +4456,10 @@ void WebAssembly::addClangTargetOptions(const ArgList &DriverArgs,
CC1Args.push_back("-fuse-init-array");
}
+Tool *WebAssembly::buildLinker() const {
+ return new tools::wasm::Linker(*this);
+}
+
PS4CPU::PS4CPU(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
: Generic_ELF(D, Triple, Args) {
if (Args.hasArg(options::OPT_static))
OpenPOWER on IntegriCloud