Skip to content

Undefined symbols when building xcpp.js for emsdk 4.0.9 build #413

@mcbarton

Description

@mcbarton

The following undefined symbol errors occur when building xcpp.js using emsdk 4.0.9 . Found in CppInterOp emsdk 4.0.9 PR here https://github.com/compiler-research/CppInterOp/actions/runs/19443476160/job/55632348748?pr=753#step:14:161

error: undefined symbol: _embind_register_bindings (referenced by root reference (e.g. compiled C/C++ code))
warning: To disable errors for undefined symbols use `-sERROR_ON_UNDEFINED_SYMBOLS=0`
warning: __embind_register_bindings may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _embind_register_class (referenced by root reference (e.g. compiled C/C++ code))
warning: __embind_register_class may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _embind_register_class_constructor (referenced by root reference (e.g. compiled C/C++ code))
warning: __embind_register_class_constructor may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _embind_register_class_function (referenced by root reference (e.g. compiled C/C++ code))
warning: __embind_register_class_function may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _embind_register_function (referenced by root reference (e.g. compiled C/C++ code))
warning: __embind_register_function may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_as (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_as may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_call (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_call may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_call_method (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_call_method may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_decref (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_decref may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_get_global (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_get_global may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_get_method_caller (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_get_method_caller may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_get_module_property (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_get_module_property may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_get_property (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_get_property may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_incref (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_incref may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_new_array (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_new_array may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_new_cstring (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_new_cstring may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_run_destructors (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_run_destructors may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_set_property (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_set_property may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
error: undefined symbol: _emval_take_value (referenced by root reference (e.g. compiled C/C++ code))
warning: __emval_take_value may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
Error: Aborting compilation due to previous errors
em++: error: '/Users/runner/work/CppInterOp/CppInterOp/emsdk/node/22.16.0_64bit/bin/node /Users/runner/work/CppInterOp/CppInterOp/emsdk/upstream/emscripten/tools/compiler.mjs -' failed (returned 1)
make[2]: *** [xcpp.js] Error 1
make[1]: *** [CMakeFiles/xcpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Possibly has same solution as #412 . Haven't checked yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions