-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Open
Description
libc++ call_once currently depend on pthread APIs, which currently makes std::cout unusable under WASM_WORKERS:
$ cat test.cpp
#include <iostream>
int main() {
std::cout << "hello" << std::endl;
return 0;
}
$ ./emcc -sWASM_WORKERS test.cpp
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-ww-debug.a(__tz.o): undefined symbol: pthread_mutex_lock
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc-ww-debug.a(__tz.o): undefined symbol: pthread_mutex_unlock
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a(call_once.o): undefined symbol: pthread_mutex_lock
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a(call_once.o): undefined symbol: pthread_cond_wait
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a(call_once.o): undefined symbol: pthread_mutex_unlock
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a(call_once.o): undefined symbol: pthread_mutex_lock
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a(call_once.o): undefined symbol: pthread_mutex_unlock
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a(call_once.o): undefined symbol: pthread_cond_broadcast
wasm-ld: error: /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/libc++-debug-ww-noexcept.a(call_once.o): undefined symbol: pthread_mutex_unlock
emcc: error: '/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/wasm-ld -o a.out.wasm /tmp/tmpqge8uk99libemscripten_js_symbols.so --import-memory --shared-memory --strip-debug --export=emscripten_stack_get_end --export=emscripten_stack_get_free --export=emscripten_stack_get_base --export=emscripten_stack_get_current --export=emscripten_stack_init --export=_emscripten_stack_alloc --export=__wasm_call_ctors --export=_emscripten_stack_restore --export=_emscripten_wasm_worker_initialize --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_lib_deps --export-if-defined=__stop_em_lib_deps --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=main --export-if-defined=__main_argc_argv --export-if-defined=fflush --export-table -z stack-size=65536 --no-growable-memory --initial-memory=16777216 --no-entry --stack-first --table-base=1 /tmp/emscripten_temp_yna_2mqo/test.o -L/usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten -L/usr/local/google/home/sbc/dev/wasm/emscripten/src/lib /usr/local/google/home/sbc/dev/wasm/emscripten/cache/sysroot/lib/wasm32-emscripten/crtbegin.o -lGL-ww-getprocaddr -lal -lhtml5 -lstubs-debug -lnoexit -lc-ww-debug -ldlmalloc-ww-debug -lcompiler_rt-ww -lc++-debug-ww-noexcept -lc++abi-debug-ww-noexcept -lsockets-ww --whole-archive -lwasm_workers-debug --no-whole-archive -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr' failed (returned 1)
See #26283
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels