- Notifications
You must be signed in to change notification settings - Fork 3.4k
Description
** Version of emscripten/emsdk: **
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.7 (48a1620)
clang version 15.0.0 (https://github.com/llvm/llvm-project fbce4a78035c32792b0a13cf1f169048b822c06b)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /home/jmg/Development/libreoffice/git_emsdk/upstream/bin
** Linking EH command flags: **
Failed build: -fwasm-exceptions -s SUPPORT_LONGJMP=wasm
. Buiding with -s DISABLE_EXCEPTION_CATCHING=0
works fine.
** Failing command line in full: **
S=/home/jmg/Development/libreoffice/wasm && B=$S/build-dbg-neh && I=$B/instdir && W=$B/workdir && /usr/bin/ccache /home/jmg/Development/libreoffice/git_emsdk/upstream/emscripten/em++ -fno-stack-protector -pthread -s USE_PTHREADS=1 -s TOTAL_MEMORY=1GB -s PTHREAD_POOL_SIZE=4 --bind -s FORCE_FILESYSTEM=1 -s WASM_BIGINT=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s FETCH=1 -s ASSERTIONS=1 -s EXIT_RUNTIME=0 -s EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16","printErr"] -pthread -s USE_PTHREADS=1 -fwasm-exceptions -s SUPPORT_LONGJMP=wasm -L$W/LinkTarget/StaticLibrary -L$I/sdk/lib -L$I/program -L$I/program -O1 -fstrict-aliasing -fstrict-overflow -g -gseparate-dwarf --pre-js $S/static/emscripten/environment.js --pre-js $W/CustomTarget/static/emscripten_fs_image/soffice.data.js.link --pre-js $S/static/emscripten/soffice_args.js $W/CObject/desktop/source/app/main.o -Wl,--start-group -luno_sal -lsofficeapp -luno_sal -lsofficeapp -lcomphelper -luno_cppu -luno_cppuhelpergcc3 -ldeploymentmisclo -leditenglo -lfwklo -li18nlangtag -luno_salhelpergcc3 -lsblo -lsfxlo -lsvllo -lsvxlo -lsvxcorelo -lsvtlo -ltklo -ltllo -lucbhelper -lutllo -lvcllo -lreglo -lunoidllo -lxmlreaderlo -lstorelo -lxmlscriptlo -lbasegfxlo -ldrawinglayercorelo -li18nutil -lsotlo -lepoxy -lxolo -llnglo -lsaxlo -ldrawinglayerlo -lavmedialo -lcomponentslo -lsvgfilterlo -lgraphicfilterlo -lhyphenlo -llnthlo -lspelllo -lbiblo -lchartcorelo -lchartcontrollerlo -lcmdmaillo -lconfigmgrlo -lctllo -ldbtoolslo -ldesktopbe1lo -levtattlo -lexpwraplo -lfilterconfiglo -lfps_officelo -lforlo -lfsstoragelo -li18npoollo -li18nsearchlo -llocalebe1lo -lloglo -lmigrationoo2lo -lmigrationoo3lo -lmsfilterlo -lnumbertextlo -lodfflatxmllo -loffacclo -looxlo -lpasswordcontainerlo -lpdffilterlo -lstoragefdlo -lsvgiolo -lemfiolo -lswlo -lsysshlo -ltextconversiondlgslo -ltextfdlo -lucpexpand1lo -lucpextlo -lucpimagelo -lucptdoc1lo -lunordflo -lunoxmllo -luuilo -lxmlfalo -lxmlfdlo -lxoflo -lxsltdlglo -lxsltfilterlo -lcuilo -lhwplo -lmswordlo -lswdlo -lt602filterlo -lwpftwriterlo -lwriterfilterlo -lcached1 -ldeployment -ldeploymentgui -lembobj -lemboleobj -lpackage2 -lsrtrs1 -lucb1 -lucpfile1 -lucphier1 -lucppkg1 -lxmlsecurity -lxsec_xmlsec -lxstor -lbinaryurplo -lbootstraplo -lintrospectionlo -linvocadaptlo -linvocationlo -liolo -lnamingservicelo -lproxyfaclo -lreflectionlo -lstocserviceslo -luuresolverlo -lwriterperfectlo -lgcc3_uno -lvclplug_qt5lo -lcollator_data -ldict_ja -ldict_zh -lindex_data -llocaledata_en -llocaledata_es -llocaledata_euro -llocaledata_others -ltextconv_dict -lswuilo -lepoxy $W/LinkTarget/StaticLibrary/libdtoa.a $W/LinkTarget/StaticLibrary/libzlib.a $W/LinkTarget/StaticLibrary/libboost_locale.a $W/LinkTarget/StaticLibrary/libgraphite.a $W/LinkTarget/StaticLibrary/liblibjpeg-turbo.a $W/LinkTarget/StaticLibrary/liblibpng.a $W/LinkTarget/StaticLibrary/libzlib.a $W/LinkTarget/StaticLibrary/libexpat.a $W/LinkTarget/StaticLibrary/libdtoa.a $W/LinkTarget/StaticLibrary/libzlib.a $W/LinkTarget/StaticLibrary/libfindsofficepath.a $W/LinkTarget/StaticLibrary/libboost_locale.a $W/LinkTarget/StaticLibrary/libgraphite.a $W/LinkTarget/StaticLibrary/liblibjpeg-turbo.a $W/LinkTarget/StaticLibrary/liblibpng.a $W/LinkTarget/StaticLibrary/libulingu.a $W/LinkTarget/StaticLibrary/libexpat.a $W/LinkTarget/StaticLibrary/libshell_xmlparser.a $W/LinkTarget/StaticLibrary/libboost_filesystem.a -L$W/UnpackedTarball/icu/source/lib -licui18n -licuuc $W/UnpackedTarball/openssl/libssl.a $W/UnpackedTarball/openssl/libcrypto.a -L$W/UnpackedTarball/liblangtag/liblangtag/.libs -llangtag -L$W/UnpackedTarball/libxml2/.libs -lxml2 -lm -L$W/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz -L$W/UnpackedTarball/lcms2/src/.libs -llcms2 -L$W/UnpackedTarball/libwebp/src/.libs -lwebp -L$W/UnpackedTarball/cairo/src/.libs -lcairo -L$W/UnpackedTarball/pixman/pixman/.libs -lpixman-1 -L$W/UnpackedTarball/fontconfig/src/.libs -lfontconfig -L$W/UnpackedTarball/freetype/instdir/lib -lfreetype -L$W/UnpackedTarball/liborcus/src/liborcus/.libs -lorcus-0.17 -L$W/UnpackedTarball/liborcus/src/parser/.libs -lorcus-parser-0.17 -L$W/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.7 -L$W/UnpackedTarball/hyphen/.libs -lhyphen -L$W/UnpackedTarball/mythes/.libs -lmythes-1.2 $W/UnpackedTarball/libnumbertext/src/.libs/libnumbertext-1.0.a -L$W/UnpackedTarball/redland/src/.libs -lrdf -L$W/UnpackedTarball/raptor/src/.libs -lraptor2 -L$W/UnpackedTarball/rasqal/src/.libs -lrasqal -L$W/UnpackedTarball/libxslt/libxslt/.libs -lxslt -L$W/UnpackedTarball/libxslt/libexslt/.libs -lexslt $W/UnpackedTarball/libabw/src/lib/.libs/libabw-0.1.a $W/UnpackedTarball/libebook/src/lib/.libs/libe-book-0.1.a -L$W/UnpackedTarball/libmwaw/src/lib/.libs -lmwaw-0.3 -L$W/UnpackedTarball/libodfgen/src/.libs -lodfgen-0.1 -L$W/UnpackedTarball/librevenge/src/lib/.libs -lrevenge-0.0 -L$W/UnpackedTarball/libstaroffice/src/lib/.libs -lstaroffice-0.0 -L$W/UnpackedTarball/libwpd/src/lib/.libs -lwpd-0.10 -L$W/UnpackedTarball/libwpg/src/lib/.libs -lwpg-0.3 -L$W/UnpackedTarball/libwps/src/lib/.libs -lwps-0.4 $W/UnpackedTarball/xmlsec/src/.libs/libxmlsec1.a -ldl -L/home/jmg/Development/libreoffice/git_qt5/install-5.15.2/lib -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network -lqtpcre2 -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport -L/home/jmg/Development/libreoffice/git_qt5/install-5.15.2/plugins/platforms -lqwasm -L$W/UnpackedTarball/icu/source/lib -licui18n -L$W/UnpackedTarball/icu/source/lib -licuuc $W/UnpackedTarball/openssl/libssl.a $W/UnpackedTarball/openssl/libcrypto.a -L$W/UnpackedTarball/liblangtag/liblangtag/.libs -llangtag -L$W/UnpackedTarball/libxml2/.libs -lxml2 -lm -L$W/UnpackedTarball/harfbuzz/src/.libs -lharfbuzz -L$W/UnpackedTarball/icu/source/lib -licuuc -L$W/UnpackedTarball/lcms2/src/.libs -llcms2 -L$W/UnpackedTarball/libwebp/src/.libs -lwebp -L$W/UnpackedTarball/cairo/src/.libs -lcairo -L$W/UnpackedTarball/pixman/pixman/.libs -lpixman-1 -L$W/UnpackedTarball/fontconfig/src/.libs -lfontconfig -L$W/UnpackedTarball/freetype/instdir/lib -lfreetype -L$W/UnpackedTarball/liborcus/src/liborcus/.libs -lorcus-0.17 -L$W/UnpackedTarball/liborcus/src/parser/.libs -lorcus-parser-0.17 -L$W/UnpackedTarball/hunspell/src/hunspell/.libs -lhunspell-1.7 -L$W/UnpackedTarball/hyphen/.libs -lhyphen -L$W/UnpackedTarball/mythes/.libs -lmythes-1.2 $W/UnpackedTarball/libnumbertext/src/.libs/libnumbertext-1.0.a -L$W/UnpackedTarball/redland/src/.libs -lrdf -L$W/UnpackedTarball/raptor/src/.libs -lraptor2 -L$W/UnpackedTarball/rasqal/src/.libs -lrasqal -L$W/UnpackedTarball/libxslt/libxslt/.libs -lxslt -L$W/UnpackedTarball/libxslt/libexslt/.libs -lexslt $W/UnpackedTarball/libabw/src/lib/.libs/libabw-0.1.a $W/UnpackedTarball/libebook/src/lib/.libs/libe-book-0.1.a -L$W/UnpackedTarball/libmwaw/src/lib/.libs -lmwaw-0.3 -L$W/UnpackedTarball/libodfgen/src/.libs -lodfgen-0.1 -L$W/UnpackedTarball/librevenge/src/lib/.libs -lrevenge-0.0 -L$W/UnpackedTarball/libstaroffice/src/lib/.libs -lstaroffice-0.0 -L$W/UnpackedTarball/libwpd/src/lib/.libs -lwpd-0.10 -L$W/UnpackedTarball/libwpg/src/lib/.libs -lwpg-0.3 -L$W/UnpackedTarball/libwps/src/lib/.libs -lwps-0.4 -L/home/jmg/Development/libreoffice/git_qt5/install-5.15.2/lib -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network -lqtpcre2 -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport -L/home/jmg/Development/libreoffice/git_qt5/install-5.15.2/plugins/platforms -lqwasm -L$W/UnpackedTarball/icu/source/lib -licudata -Wl,--end-group -o
error: undefined symbol: emscripten_longjmp (referenced by top-level compiled C/C++ code)
warning: Link with -s LLD_REPORT_UNDEFINED
to get more information on undefined symbols
warning: To disable errors for undefined symbols use -s ERROR_ON_UNDEFINED_SYMBOLS=0
warning: _emscripten_longjmp may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
Error: Aborting compilation due to previous errors
em++: error: '/home/jmg/Development/libreoffice/git_emsdk/node/14.15.5_64bit/bin/node /home/jmg/Development/libreoffice/git_emsdk/upstream/emscripten/src/compiler.js /tmp/tmpu_78bn8k.json' failed (returned 1)
make[1]: *** [/home/jmg/Development/libreoffice/wasm/desktop/Executable_soffice_bin.mk:10: /home/jmg/Development/libreoffice/wasm/build-dbg-neh/instdir/program/soffice.html] Fehler 1
** Full link command and output with -v
appended: **
"/home/jmg/Development/libreoffice/git_emsdk/upstream/bin/wasm-ld" @/tmp/emscripten_9txe174p.rsp.utf-8
"/home/jmg/Development/libreoffice/git_emsdk/upstream/bin/wasm-emscripten-finalize" -g --bigint --no-dyncalls --no-legalize-javascript-ffi --dwarf /home/jmg/Development/libreoffice/wasm/build-dbg-neh/instdir/program/soffice.wasm --detect-features
"/home/jmg/Development/libreoffice/git_emsdk/node/14.15.5_64bit/bin/node" /home/jmg/Development/libreoffice/git_emsdk/upstream/emscripten/src/compiler.js /tmp/tmpijnjxqwv.json
Linking with EMCC_DEBUG=1 the diff -u link-3.1.5.log link-3.1.6.log
has an interesting diff in the 'declares': array:
@@ -3040,6 +3040,7 @@ 'exit', 'emscripten_asm_const_int', 'setTempRet0', + 'emscripten_longjmp', 'gethostbyname', 'emscripten_log', 'getentropy', @@ -3337,7 +3338,6 @@ '__syscall_truncate64', '__syscall_utimensat', 'emscripten_resize_heap', - '_emscripten_throw_longjmp', 'strftime_l', '__syscall_accept4', '__syscall_bind',
The rest is just temporary files and time differences.
It looks like the origin of the problem is #15792, which added #ifndef __USING_WASM_SJLJ__
for the missing symbol.
FWIW, the WASM EH LibreOffice just builds since some time but doesn't run yet, because of a function call mismatch, which interestingly doesn't happen with the Emscripten EH build with the same code...