diff options
Diffstat (limited to 'lib/Driver')
-rw-r--r-- | lib/Driver/ToolChains/WebAssembly.cpp | 8 | ||||
-rw-r--r-- | lib/Driver/ToolChains/WebAssembly.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/Driver/ToolChains/WebAssembly.cpp b/lib/Driver/ToolChains/WebAssembly.cpp index 1464c150c9..d00d833fbb 100644 --- a/lib/Driver/ToolChains/WebAssembly.cpp +++ b/lib/Driver/ToolChains/WebAssembly.cpp @@ -135,6 +135,14 @@ void WebAssembly::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, getDriver().SysRoot + "/include/c++/v1"); } +std::string WebAssembly::getThreadModel() const { + // The WebAssembly MVP does not yet support threads; for now, use the + // "single" threading model, which lowers atomics to non-atomic operations. + // When threading support is standardized and implemented in popular engines, + // this override should be removed. + return "single"; +} + Tool *WebAssembly::buildLinker() const { return new tools::wasm::Linker(*this); } diff --git a/lib/Driver/ToolChains/WebAssembly.h b/lib/Driver/ToolChains/WebAssembly.h index 7524361d51..8784e12dfb 100644 --- a/lib/Driver/ToolChains/WebAssembly.h +++ b/lib/Driver/ToolChains/WebAssembly.h @@ -62,6 +62,7 @@ private: void AddClangCXXStdlibIncludeArgs( const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; + std::string getThreadModel() const override; const char *getDefaultLinker() const override { return "lld"; |