diff options
author | Dan Gohman <dan433584@gmail.com> | 2015-12-16 23:30:41 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2015-12-16 23:30:41 +0000 |
commit | 5281686cddaa2171d46a1d3af2af3e6178e7fc17 (patch) | |
tree | f71bf89b717af6f1a36e707df7c126ea90df937d /clang/lib/Driver/ToolChains.cpp | |
parent | 417295381308b9af6e431d3ceb42b4770969bc96 (diff) | |
download | bcm5719-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.cpp | 13 |
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)) |