Skip to content

OpenMP does not work on WASM64 #27221

Description

@duerrbaby

Please include the following in your bug report:

Version of emscripten/emsdk:

kengc@dd-kengchew:~$ emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 5.0.2 (dc80f645ee70178c11666de0c3860d9e064d50e4)
clang version 23.0.0git (https:/github.com/llvm/llvm-project 58f4da463e5b3cd3531cace17cc3f2d8d860964e)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /home/kengc/emsdk/upstream/bin

OpenMP implemented in this PR
#27073

Failing command line in full:
Failing the test_openmp_max_threads on test-wasm64-4gb/test_core.wasm64_4gb

Full link command and output with -v appended:

======================================================================
FAIL [0.001s]: test_openmp_max_threads (test_core.wasm64_4gb)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/root/project/test/common.py", line 1256, in run_process
    rtn = utils.run_process(cmd, check=check, **kwargs)
  File "/root/project/tools/utils.py", line 45, in run_process
    ret = subprocess.run(cmd, check=check, input=input, *args, **kw)
  File "/usr/lib/python3.10/subprocess.py", line 526, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/root/project/em++', 'src.cpp', '-o', 'src.js', '-sNO_DEFAULT_TO_CXX', '-sINITIAL_MEMORY=4200mb', '-sGLOBAL_BASE=4gb', '-Wclosure', '-Werror', '-Wno-limited-postlink-optimizations', '-m64', '--profiling-funcs', '-Wno-unused-command-line-argument', '-fopenmp=libomp']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/project/test/decorators.py", line 43, in decorated
    return func(self, *args, **kwargs)
  File "/root/project/test/test_core.py", line 5628, in test_openmp_max_threads
    self.do_run(src, "", cflags=["-fopenmp=libomp"])
  File "/root/project/test/common.py", line 1434, in do_run
    return self._build_and_run(filename, expected_output, **kwargs)
  File "/root/project/test/common.py", line 1466, in _build_and_run
    js_file = self.build(filename, **kwargs)
  File "/root/project/test/common.py", line 953, in build
    self.run_process(cmd, stderr=self.stderr_redirect if not DEBUG else None)
  File "/root/project/test/common.py", line 1261, in run_process
    self.fail(f'subprocess exited with non-zero return code({e.returncode}): `{shlex.join(cmd)}`')
AssertionError: subprocess exited with non-zero return code(1): `/root/project/em++ src.cpp -o src.js -sNO_DEFAULT_TO_CXX -sINITIAL_MEMORY=4200mb -sGLOBAL_BASE=4gb -Wclosure -Werror -Wno-limited-postlink-optimizations -m64 --profiling-funcs -Wno-unused-command-line-argument -fopenmp=libomp`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions