summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2019-03-22 22:25:37 +0000
committerThomas Lively <tlively@google.com>2019-03-22 22:25:37 +0000
commit80ff58e37c96df05bd1811083267c9c53ef1b85f (patch)
treeb607ed3bfa662f9267ce53b232567d0037ef0f5a /clang
parent386f00db75f1b6484329f14a7002e2c0fadadb76 (diff)
downloadbcm5719-llvm-80ff58e37c96df05bd1811083267c9c53ef1b85f.tar.gz
bcm5719-llvm-80ff58e37c96df05bd1811083267c9c53ef1b85f.zip
[WebAssembly] Make driver -pthread imply linker --shared-memory
Summary: This eliminates a linker error the user might otherwise see about how using the 'atomics' feature requires --shared-memory. Reviewers: sbc100, aheejin Subscribers: dschuff, jgravelle-google, sunfish, jfb, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D59721 llvm-svn: 356817
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/ToolChains/WebAssembly.cpp4
-rw-r--r--clang/test/Driver/wasm-toolchain.c3
2 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Driver/ToolChains/WebAssembly.cpp b/clang/lib/Driver/ToolChains/WebAssembly.cpp
index 0104cbbbf4d..b69588d4c1e 100644
--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
+++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
@@ -62,8 +62,10 @@ void wasm::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (ToolChain.ShouldLinkCXXStdlib(Args))
ToolChain.AddCXXStdlibLibArgs(Args, CmdArgs);
- if (Args.hasArg(options::OPT_pthread))
+ if (Args.hasArg(options::OPT_pthread)) {
CmdArgs.push_back("-lpthread");
+ CmdArgs.push_back("--shared-memory");
+ }
CmdArgs.push_back("-lc");
AddRunTimeLibs(ToolChain, ToolChain.getDriver(), CmdArgs, Args);
diff --git a/clang/test/Driver/wasm-toolchain.c b/clang/test/Driver/wasm-toolchain.c
index 9c217ef2e94..c47e24fa94e 100644
--- a/clang/test/Driver/wasm-toolchain.c
+++ b/clang/test/Driver/wasm-toolchain.c
@@ -41,9 +41,10 @@
// Thread-related command line tests.
-// '-pthread' sets '-target-feature +atomics'
+// '-pthread' sets '-target-feature +atomics' and '--shared-memory'
// RUN: %clang -### -no-canonical-prefixes -target wasm32-unknown-unknown --sysroot=/foo %s -pthread 2>&1 | FileCheck -check-prefix=PTHREAD %s
// PTHREAD: clang{{.*}}" "-cc1" {{.*}} "-target-feature" "+atomics"
+// PTHREAD: wasm-ld{{.*}}" "-lpthread" "--shared-memory"
// '-pthread' not allowed with '-mno-atomics'
// RUN: %clang -### -no-canonical-prefixes -target wasm32-unknown-unknown --sysroot=/foo %s -pthread -mno-atomics 2>&1 | FileCheck -check-prefix=PTHREAD_NO_ATOMICS %s
OpenPOWER on IntegriCloud