summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2017-10-27 00:26:07 +0000
committerSam Clegg <sbc@chromium.org>2017-10-27 00:26:07 +0000
commita08631ec6cc885d145a9cd540695b680bd7a2653 (patch)
treefd57202b9d1a5f4b357a7de920fe6356af4f94a8 /clang/lib/Driver
parent13cb23b8b3708555c54eb42da3ac789311a0c771 (diff)
downloadbcm5719-llvm-a08631ec6cc885d145a9cd540695b680bd7a2653.tar.gz
bcm5719-llvm-a08631ec6cc885d145a9cd540695b680bd7a2653.zip
[WebAssembly] Include libclang_rt.builtins in the standard way
Differential Revision: https://reviews.llvm.org/D39218 llvm-svn: 316719
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r--clang/lib/Driver/ToolChain.cpp8
-rw-r--r--clang/lib/Driver/ToolChains/CommonArgs.cpp10
-rw-r--r--clang/lib/Driver/ToolChains/WebAssembly.cpp2
3 files changed, 9 insertions, 11 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index 593cd82038f..12699471662 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -309,7 +309,13 @@ static StringRef getArchNameForCompilerRTLib(const ToolChain &TC,
std::string ToolChain::getCompilerRTPath() const {
SmallString<128> Path(getDriver().ResourceDir);
- StringRef OSLibName = Triple.isOSFreeBSD() ? "freebsd" : getOS();
+ StringRef OSLibName;
+ if (Triple.isOSFreeBSD())
+ OSLibName = "freebsd";
+ else if (Triple.isOSBinFormatWasm())
+ OSLibName = "wasm";
+ else
+ OSLibName = getOS();
llvm::sys::path::append(Path, "lib", OSLibName);
return Path.str();
}
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index dc50c4f121f..b359cbb77ef 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -1027,15 +1027,7 @@ void tools::AddRunTimeLibs(const ToolChain &TC, const Driver &D,
switch (RLT) {
case ToolChain::RLT_CompilerRT:
- switch (TC.getTriple().getOS()) {
- default:
- llvm_unreachable("unsupported OS");
- case llvm::Triple::Win32:
- case llvm::Triple::Linux:
- case llvm::Triple::Fuchsia:
- CmdArgs.push_back(TC.getCompilerRTArgString(Args, "builtins"));
- break;
- }
+ CmdArgs.push_back(TC.getCompilerRTArgString(Args, "builtins"));
break;
case ToolChain::RLT_Libgcc:
// Make sure libgcc is not used under MSVC environment by default
diff --git a/clang/lib/Driver/ToolChains/WebAssembly.cpp b/clang/lib/Driver/ToolChains/WebAssembly.cpp
index 354f77fd66a..9f91237705b 100644
--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
+++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
@@ -61,7 +61,7 @@ void wasm::Linker::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back("-allow-undefined-file");
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("wasm.syms")));
CmdArgs.push_back("-lc");
- CmdArgs.push_back("-lcompiler_rt");
+ AddRunTimeLibs(ToolChain, ToolChain.getDriver(), CmdArgs, Args);
}
CmdArgs.push_back("-o");
OpenPOWER on IntegriCloud