summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/source/app/sofficemain.cxx6
-rw-r--r--static/README.wasm.md6
2 files changed, 11 insertions, 1 deletions
diff --git a/desktop/source/app/sofficemain.cxx b/desktop/source/app/sofficemain.cxx
index 73ac6e24cfe4..33881784d45c 100644
--- a/desktop/source/app/sofficemain.cxx
+++ b/desktop/source/app/sofficemain.cxx
@@ -63,7 +63,13 @@ extern "C" int DESKTOP_DLLPUBLIC soffice_main()
#endif
tools::extendApplicationEnvironment();
+#if defined EMSCRIPTEN
+ //TODO, see "Experimental (AKA currently broken) WASM exception + SjLj build" in
+ // static/README.wasm.md:
+ new desktop::Desktop();
+#else
desktop::Desktop aDesktop;
+#endif
// This string is used during initialization of the Gtk+ VCL module
Application::SetAppName( u"soffice"_ustr );
diff --git a/static/README.wasm.md b/static/README.wasm.md
index 5397e2124d16..97be5a14123b 100644
--- a/static/README.wasm.md
+++ b/static/README.wasm.md
@@ -122,7 +122,11 @@ You can build LO with WASM exceptions, which should be "much" faster then the JS
based Emscripten EH handling. For setjmp / longjmp (SjLj) used by the PNG and JPEG
libraries error handling, this needs Emscripten 3.1.3+. That builds, but execution
still fails early with a signature mismatch call to Task::UpdateMinPeriod in LO's
-job scheduler code. Unfortunately the build also needs a Qt build with
+job scheduler code (concretely: the call to `pSchedulerData->mpTask->UpdateMinPeriod` in
+`Scheduler::CallbackTaskScheduling` in vcl/source/app/scheduler.cxx being a pure virtual call on a
+destroyed `desktop::Desktop::m_firstRunTimer` instance, because `desktop::Desktop aDesktop` in
+`soffice_main` in desktop/source/app/sofficemain.cxx gets destroyed early, for unclear reasons).
+Unfortunately the build also needs a Qt build with
"-s SUPPORT_LONGJMP=wasm", which is incompatible with the JS EH + SjLj.
The LO configure flag is simply an additional --enable-wasm-exceptions. Qt5 can