"openfl build emscripten" error on Ubuntu


I’am on Ubuntu, with emsdk 1.38.14, lime 6.4.0, openfl 8.3.0.
When I build the openfl-sample BunnyMark with “openfl build emscripten”, unfortunately, the following error occurs:

[email protected]:~/haxelib/openfl-samples/6,0,0/demos/BunnyMark$ openfl build emscripten
Creating /home/yzkuang/haxelib/openfl-samples/6,0,0/demos/BunnyMark/Export/emscripten/obj/obj/emscripten-stat/__pch/haxe/hxcpp.h.gch…

Compiling group: haxe
emcc -Iinclude -c -fvisibility=hidden -O1 -fpic -fPIC -DEMSCRIPTEN -Wno-overflow -Wno-parentheses -Wno-unknown-warning-option -Wno-null-dereference -Wno-unused-value -Wno-format-extra-args -Wno-bool-conversion -Wno-warn-absolute-paths -DSTATIC_LINK(static) -DHXCPP_VISIT_ALLOCS(haxe) -DHXCPP_API_LEVEL=332(haxe) -I/home/yzkuang/haxelib/hxcpp/4,0,4/include … tags=[haxe,static]

  • src/ApplicationMain.cpp
  • src/lime/utils/AssetCache.cpp [haxe,release]
    Clean: libApplicationMain.a
    Link: libApplicationMain.a
    Ranlib: libApplicationMain.a
    emcc Export/emscripten/obj/Main.cpp -o Export/emscripten/obj/Main.o
    emcc Main.o /home/yzkuang/haxelib/lime/6,4,0/ndll/Emscripten/liblime.a libApplicationMain.a -o ApplicationMain.o
    emcc ApplicationMain.o -s ASM_JS=1 -s NO_EXIT_RUNTIME=1 -s USE_SDL=2 -s USE_WEBGL2=1 -s ERROR_ON_UNDEFINED_SYMBOLS=0 -lpthread -lopenal -s DISABLE_EXCEPTION_CATCHING=0 -O2 -s ALLOW_MEMORY_GROWTH=1 --preload-file assets -o …/bin/BunnyMark.js
    Traceback (most recent call last):
    File “/home/yzkuang/emsdk/emscripten/1.38.14/emcc.py”, line 3092, in
    File “/home/yzkuang/emsdk/emscripten/1.38.14/emcc.py”, line 1805, in run
    final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)
    File “/home/yzkuang/emsdk/emscripten/1.38.14/tools/shared.py”, line 2250, in emscripten
    File “/home/yzkuang/emsdk/emscripten/1.38.14/emscripten.py”, line 2350, in _main
    return temp_files.run_and_clean(lambda: main(
    File “/home/yzkuang/emsdk/emscripten/1.38.14/tools/tempfiles.py”, line 98, in run_and_clean
    return func()
    File “/home/yzkuang/emsdk/emscripten/1.38.14/emscripten.py”, line 2355, in
    File “/home/yzkuang/emsdk/emscripten/1.38.14/emscripten.py”, line 2281, in main
    temp_files=temp_files, DEBUG=DEBUG)
    File “/home/yzkuang/emsdk/emscripten/1.38.14/emscripten.py”, line 101, in emscript
    glue, forwarded_data = compiler_glue(metadata, libraries, compiler_engine, temp_files, DEBUG)
    File “/home/yzkuang/emsdk/emscripten/1.38.14/emscripten.py”, line 231, in compiler_glue
    assert not (metadata[‘simd’] and shared.Settings.WASM), ‘SIMD is used, but not supported in WASM mode yet’
    AssertionError: SIMD is used, but not supported in WASM mode yet


I think I built using Emscripten 1.36 or 1.37 before, but I have seen this error with newer versions. I tried and tried to find the cause, but honestly, as far as I could tell at the time, we were not using SIMD. In fact, I don’t even remember it working when I tried to use ASM.js instead of WASM :sweat: