motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 062eb6f3c0027e8a371e6865963645b70e49b84e (tree)
parent 381937116326400c1162a710c16496152b542443
Author: Luuk de Gram <luuk@degram.dev>
Date:   Sun, 18 Jun 2023 18:22:04 +0200

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:
Msrc/Compilation.zig | 2+-
Msrc/target.zig | 4----
2 files changed, 1 insertion(+), 5 deletions(-)

diff --git 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 @@ -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) {