diff options
author | Thomas Lively <tlively@google.com> | 2019-03-22 22:25:37 +0000 |
---|---|---|
committer | Thomas Lively <tlively@google.com> | 2019-03-22 22:25:37 +0000 |
commit | 80ff58e37c96df05bd1811083267c9c53ef1b85f (patch) | |
tree | b607ed3bfa662f9267ce53b232567d0037ef0f5a /clang | |
parent | 386f00db75f1b6484329f14a7002e2c0fadadb76 (diff) | |
download | bcm5719-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.cpp | 4 | ||||
-rw-r--r-- | clang/test/Driver/wasm-toolchain.c | 3 |
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 |