Skip to content

emsdk/3.1.72 error: undefined symbol: saveSetjmp (referenced by root reference (e.g. compiled C/C++ code)) #1506

@skhaz

Description

@skhaz

Hi,

I recently updated the emsdk to version 3.1.72 (the latest available in Conan). Until version 3.1.50, everything was working fine, but with this recent version, the errors below started appearing unexpectedly, and only on the CI (GitHub Actions). On my machine, it compiles without any issues.

Am I missing any flags?

Below are the flags I’m currently using:

if (${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
  set(EMSCRIPTEN_OPTIONS
    "-s EVAL_CTORS=1"
    "-s WASM_BIGINT=1"
    "-s ALLOW_MEMORY_GROWTH=1"
    "-s INITIAL_MEMORY=128MB"
    "-l websocket.js"
    "-s USE_SDL=2"
    "-s WEBSOCKET_SUBPROTOCOL=text"
    "-s EXPORTED_RUNTIME_METHODS=['callMain']"
    # Debug
    "-s ASSERTIONS=1"
    "-s NO_DISABLE_EXCEPTION_CATCHING"
  )
  target_link_libraries(${PROJECT_NAME} PRIVATE ${EMSCRIPTEN_OPTIONS})
endif()
ports:INFO: retrieving port: sdl2 from https://github.com/libsdl-org/SDL/archive/release-2.30.9.zip
ports:INFO: unpacking port: sdl2
cache:INFO: generating port: sysroot/lib/wasm32-emscripten/libSDL2.a... (this will be cached in "/home/runner/.conan2/p/emsdkc9782d7aefec5/p/bin/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/libSDL2.a" for subsequent builds)
system_libs:INFO: compiled 118 inputs in 10.89s
cache:INFO:  - ok
cache:INFO: generating system asset: symbol_lists/b91beb356020cb3aabb6f7d6e5e95486b2c81633.json... (this will be cached in "/home/runner/.conan2/p/emsdkc9782d7aefec5/p/bin/upstream/emscripten/cache/symbol_lists/b91beb356020cb3aabb6f7d6e5e95486b2c81633.json" for subsequent builds)
cache:INFO:  - ok
error: undefined symbol: saveSetjmp (referenced by root reference (e.g. compiled C/C++ code))
warning: To disable errors for undefined symbols use `-sERROR_ON_UNDEFINED_SYMBOLS=0`
warning: _saveSetjmp may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: testSetjmp (referenced by root reference (e.g. compiled C/C++ code))
warning: _testSetjmp may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
Error: Aborting compilation due to previous errors
em++: error: 'node /home/runner/.conan2/p/emsdkc9782d7aefec5/p/bin/upstream/emscripten/src/compiler.mjs /tmp/tmpizl_xa90.json' failed (returned 1)
/home/runner/.conan2/p/emsdkc9782d7aefec5/p/bin/upstream/emscripten/em++ -O3 -DNDEBUG @CMakeFiles/carimbo.dir/objects1.rsp -o carimbo.js @CMakeFiles/carimbo.dir/linkLibs.rsp
gmake[2]: *** [CMakeFiles/carimbo.dir/build.make:971: carimbo.js] Error 1
gmake[2]: Leaving directory '/home/runner/work/carimbo/carimbo/build'
gmake[1]: *** [CMakeFiles/Makefile2:87: CMakeFiles/carimbo.dir/all] Error 2
gmake[1]: Leaving directory '/home/runner/work/carimbo/carimbo/build'
gmake: *** [Makefile:91: all] Error 2
Error: Process completed with exit code 2.

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions