diff options
-rw-r--r-- | desktop/source/app/sofficemain.cxx | 6 | ||||
-rw-r--r-- | static/README.wasm.md | 6 |
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 |