From 211cde09236165dbd379644753337be1de64b151 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Mon, 3 Nov 2025 12:41:31 +0200 Subject: [PATCH] mythread.h: Fix the build on Emscripten when threading is disabled To make a non-threaded liblzma-only build work with WASI SDK, and mythread_sigmask() were omitted from mythread.h in the commit 81db3b889830. This broke non-threaded full build with Emscripten because src/xz/signals.c needs mythread_sigmask() (liblzma-only build was fine). If __wasm__ is defined, omit and mythread_sigmask() in non-threaded builds only when __EMSCRIPTEN__ isn't defined. Reported-by: Marcus Tillmanns Thanks-to: ChanTsune Fixes: https://github.com/tukaani-project/xz/issues/161 Fixes: 81db3b889830 ("mythread.h: Disable signal functions in builds targeting Wasm + WASI.") --- src/common/mythread.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/mythread.h b/src/common/mythread.h index 10ea2d42..bec69b44 100644 --- a/src/common/mythread.h +++ b/src/common/mythread.h @@ -78,7 +78,8 @@ do { \ } while (0) -#if !(defined(_WIN32) && !defined(__CYGWIN__)) && !defined(__wasm__) +#if !(defined(_WIN32) && !defined(__CYGWIN__)) \ + && (!defined(__wasm__) || defined(__EMSCRIPTEN__)) // Use sigprocmask() to set the signal mask in single-threaded programs. #include