aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuuk de Gram <luuk@degram.dev>2023-06-18 18:22:04 +0200
committerLuuk de Gram <luuk@degram.dev>2023-06-26 20:00:57 +0200
commit062eb6f3c0027e8a371e6865963645b70e49b84e (patch)
tree8d4acf43c95e976b733a5acddc477ec604c0759d /src
parent381937116326400c1162a710c16496152b542443 (diff)
downloadzig-062eb6f3c0027e8a371e6865963645b70e49b84e.tar.gz
zig-062eb6f3c0027e8a371e6865963645b70e49b84e.zip
Compilation: allow threads for Wasm when shared-memory is enabled
When the user enabled the linker-feature 'shared-memory' we do not force a singlethreaded build. The linker already verifies all other CPU features required for threads are enabled. This is true for both WASI and freestanding.
Diffstat (limited to 'src')
-rw-r--r--src/Compilation.zig2
-rw-r--r--src/target.zig4
2 files changed, 1 insertions, 5 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 4e0a36d652..fe13df8097 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -1029,7 +1029,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
const include_compiler_rt = options.want_compiler_rt orelse needs_c_symbols;
- const must_single_thread = target_util.isSingleThreaded(options.target);
+ const must_single_thread = options.target.isWasm() and !options.linker_shared_memory;
const single_threaded = options.single_threaded orelse must_single_thread;
if (must_single_thread and !single_threaded) {
return error.TargetRequiresSingleThreaded;
diff --git a/src/target.zig b/src/target.zig
index 2d27869cf6..28833428a7 100644
--- a/src/target.zig
+++ b/src/target.zig
@@ -207,10 +207,6 @@ pub fn supports_fpic(target: std.Target) bool {
return target.os.tag != .windows and target.os.tag != .uefi;
}
-pub fn isSingleThreaded(target: std.Target) bool {
- return target.isWasm();
-}
-
/// Valgrind supports more, but Zig does not support them yet.
pub fn hasValgrindSupport(target: std.Target) bool {
switch (target.cpu.arch) {