authorgravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2023-06-18 18:22:04+02:00
committergravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2023-06-26 20:00:57+02:00
log062eb6f3c0027e8a371e6865963645b70e49b84e
tree8d4acf43c95e976b733a5acddc477ec604c0759d
parent381937116326400c1162a710c16496152b542443
signaturelock-open Commit is signed but in an unrecognized format.

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.

2 files changed, 1 insertions(+), 5 deletions(-)

src/Compilation.zig+1-1
......@@ -1029,7 +1029,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation {
10291029
10301030 const include_compiler_rt = options.want_compiler_rt orelse needs_c_symbols;
10311031
1032 const must_single_thread = target_util.isSingleThreaded(options.target);
1032 const must_single_thread = options.target.isWasm() and !options.linker_shared_memory;
10331033 const single_threaded = options.single_threaded orelse must_single_thread;
10341034 if (must_single_thread and !single_threaded) {
10351035 return error.TargetRequiresSingleThreaded;
src/target.zig-4
......@@ -207,10 +207,6 @@ pub fn supports_fpic(target: std.Target) bool {
207207 return target.os.tag != .windows and target.os.tag != .uefi;
208208}
209209
210pub fn isSingleThreaded(target: std.Target) bool {
211 return target.isWasm();
212}
213
214210/// Valgrind supports more, but Zig does not support them yet.
215211pub fn hasValgrindSupport(target: std.Target) bool {
216212 switch (target.cpu.arch) {