You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This error appeared after updating emsdk, not 100% sure which version introduced it. The output given here is from Windows with Ninja, but it also fails when running on Linux with make. In both cases, the project is generated through cmake (with emcmake) and adding -fwasm-exceptions to the CXX and linker commands.
C:\WINDOWS\system32\cmd.exe /C "cd . && emsdk\upstream\emscripten\em++.bat -fwasm-exceptions -O3 -DNDEBUG util/geosop/CMakeFiles/geosop.dir/GeosOp.cpp.o util/geosop/CMakeFiles/geosop.dir/GeometryOp.cpp.o -o bin\geosop.js lib/libgeos.a lib/libgeos_c.a lib/libgeos.a -lc++-noexcept -lc++abi-debug-noexcept && cd ."
wasm-ld: error: duplicate symbol: __cxxabiv1::__setExceptionClass(_Unwind_Exception*, unsigned long long)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxxabiv1::__getExceptionClass(_Unwind_Exception const*)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxxabiv1::__isOurExceptionClass(_Unwind_Exception const*)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_allocate_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_free_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_init_primary_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_decrement_exception_refcount
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_get_exception_ptr
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(private_typeinfo.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_increment_exception_refcount
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_current_primary_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_rethrow_primary_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_uncaught_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_uncaught_exceptions
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
em++: error: 'emsdk/upstream/bin\wasm-ld.exe -o bin\geosop.wasm util/geosop/CMakeFiles/geosop.dir/GeosOp.cpp.o util/geosop/CMakeFiles/geosop.dir/GeometryOp.cpp.o lib/libgeos.a lib/libgeos_c.a lib/libgeos.a -lc++-noexcept -lc++abi-debug-noexcept -Lemsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten -Lemsdk\upstream\emscripten\src\lib -lGL-getprocaddr -lal -lhtml5 -lstubs -lnoexit -lc -ldlmalloc -lcompiler_rt-legacysjlj -lc++-legacyexcept -lc++abi-legacyexcept -lunwind-legacyexcept -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr -mllvm -wasm-enable-eh -mllvm -wasm-use-legacy-eh -mllvm -exception-model=wasm C:\Users\abarany\AppData\Local\Temp\tmpm5z0y_a_libemscripten_js_symbols.so --strip-debug --export=_emscripten_stack_alloc --export=__trap --export=__wasm_call_ctors --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-table -z stack-size=65536 --no-growable-memory --initial-heap=16777216 --no-entry --table-base=1 --global-base=1024' failed (returned 1)
Full link command and output with -v appended:
C:\WINDOWS\system32\cmd.exe /C "cd . && emsdk\upstream\emscripten\em++.bat -fwasm-exceptions -v -O3 -DNDEBUG util/geosop/CMakeFiles/geosop.dir/GeosOp.cpp.o util/geosop/CMakeFiles/geosop.dir/GeometryOp.cpp.o -o bin\geosop.js lib/libgeos.a lib/libgeos_c.a lib/libgeos.a -lc++-noexcept -lc++abi-debug-noexcept && cd ."
"emsdk/upstream/bin\clang.exe" --version
"emsdk/upstream/bin\wasm-ld.exe" -o bin\geosop.wasm util/geosop/CMakeFiles/geosop.dir/GeosOp.cpp.o util/geosop/CMakeFiles/geosop.dir/GeometryOp.cpp.o lib/libgeos.a lib/libgeos_c.a lib/libgeos.a -lc++-noexcept -lc++abi-debug-noexcept -Lemsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten -Lemsdk\upstream\emscripten\src\lib -lGL-getprocaddr -lal -lhtml5 -lstubs -lnoexit -lc -ldlmalloc -lcompiler_rt-legacysjlj -lc++-legacyexcept -lc++abi-legacyexcept -lunwind-legacyexcept -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr -mllvm -wasm-enable-eh -mllvm -wasm-use-legacy-eh -mllvm -exception-model=wasm C:\Users\abarany\AppData\Local\Temp\tmp1pqfvuuilibemscripten_js_symbols.so --strip-debug --export=_emscripten_stack_alloc --export=__trap --export=__wasm_call_ctors --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-table -z stack-size=65536 --no-growable-memory --initial-heap=16777216 --no-entry --table-base=1 --global-base=1024
wasm-ld: error: duplicate symbol: __cxxabiv1::__setExceptionClass(_Unwind_Exception*, unsigned long long)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxxabiv1::__getExceptionClass(_Unwind_Exception const*)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxxabiv1::__isOurExceptionClass(_Unwind_Exception const*)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_allocate_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_free_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_init_primary_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_decrement_exception_refcount
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_get_exception_ptr
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(private_typeinfo.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_increment_exception_refcount
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_current_primary_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_rethrow_primary_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_uncaught_exception
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
wasm-ld: error: duplicate symbol: __cxa_uncaught_exceptions
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-debug-noexcept.a(cxa_noexception.o)
>>> defined in emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libc++abi-legacyexcept.a(cxa_exception.o)
em++: error: 'emsdk/upstream/bin\wasm-ld.exe -o bin\geosop.wasm util/geosop/CMakeFiles/geosop.dir/GeosOp.cpp.o util/geosop/CMakeFiles/geosop.dir/GeometryOp.cpp.o lib/libgeos.a lib/libgeos_c.a lib/libgeos.a -lc++-noexcept -lc++abi-debug-noexcept -Lemsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten -Lemsdk\upstream\emscripten\src\lib -lGL-getprocaddr -lal -lhtml5 -lstubs -lnoexit -lc -ldlmalloc -lcompiler_rt-legacysjlj -lc++-legacyexcept -lc++abi-legacyexcept -lunwind-legacyexcept -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh -mllvm -disable-lsr -mllvm -wasm-enable-eh -mllvm -wasm-use-legacy-eh -mllvm -exception-model=wasm C:\Users\abarany\AppData\Local\Temp\tmp1pqfvuuilibemscripten_js_symbols.so --strip-debug --export=_emscripten_stack_alloc --export=__trap --export=__wasm_call_ctors --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-table -z stack-size=65536 --no-growable-memory --initial-heap=16777216 --no-entry --table-base=1 --global-base=1024' failed (returned 1)
The text was updated successfully, but these errors were encountered:
The command line you list shows -lc++-noexcept -lc++abi-debug-noexcept explicitly added, but those libraries should always be added automatically/implicitly by emcc, no added explicitly like that.
Could this perhaps be a duplicate of #23944? Does adding -DEMSCRIPTEN_FORCE_COMPILERS=ON to your cmake command fix the issue (you need to do a clean build, removing the cmake cache).
This error appeared after updating emsdk, not 100% sure which version introduced it. The output given here is from Windows with Ninja, but it also fails when running on Linux with make. In both cases, the project is generated through cmake (with
emcmake
) and adding-fwasm-exceptions
to the CXX and linker commands.Version of emscripten/emsdk:
Failing command line in full:
Full link command and output with
-v
appended:The text was updated successfully, but these errors were encountered: