configure.ac                                   |   12 ++++++++++++
 solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk |    2 +-
 vcl/Library_vcl.mk                             |   16 ++--------------
 3 files changed, 15 insertions(+), 15 deletions(-)

New commits:
commit ac65b4bb7a75ec71294a527bc4139356fcbf0929
Author:     Jan-Marek Glogowski <glo...@fbihome.de>
AuthorDate: Sun Feb 20 18:15:10 2022 +0100
Commit:     Jan-Marek Glogowski <glo...@fbihome.de>
CommitDate: Sun Feb 20 20:12:07 2022 +0100

    WASM depend on Emscripten 3.1.3 for native EH
    
    This reverts the special SjLj handling introduced in commit
    ae22f7d06246ee21f9c8e9f35f4477e88843c58b ("WASM add option to
    build with native exceptions"). This is supposed to work now;
    at least it compiles.
    
    Change-Id: I5ebceea9c7fe3c982d7c9a8818fd79f2018f03cc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130219
    Tested-by: Jenkins
    Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de>

diff --git a/configure.ac b/configure.ac
index 6d81302b9e7e..af1da0103177 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3073,7 +3073,19 @@ if test "$enable_wasm_strip" = "yes"; then
     AC_DEFINE(ENABLE_WASM_STRIP_SWEXPORTS)
 fi
 
+EMSCRIPTEN_NEH_MAJOR=3
+EMSCRIPTEN_NEH_MINOR=1
+EMSCRIPTEN_NEH_TINY=3
+EMSCRIPTEN_NEH_VERSION="${EMSCRIPTEN_NEH_MAJOR}.${EMSCRIPTEN_NEH_MINOR}.${EMSCRIPTEN_NEH_TINY}"
+
 if test "$enable_wasm_exceptions" = yes; then
+    AC_MSG_CHECKING([if Emscripten version is at least $EMSCRIPTEN_NEH_VERSION 
for SjLj + native EH])
+    check_semantic_version_three_prefixed EMSCRIPTEN NEH
+    if test $? -ne 0; then
+        AC_MSG_ERROR([no, found $EMSCRIPTEN_VERSION])
+    else
+        AC_MSG_RESULT([yes ($EMSCRIPTEN_VERSION)])
+    fi
     ENABLE_WASM_EXCEPTIONS=TRUE
 fi
 AC_SUBST(ENABLE_WASM_EXCEPTIONS)
diff --git a/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk 
b/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk
index a0ba51da2e4f..83e850a95f9f 100644
--- a/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk
@@ -32,7 +32,7 @@ gb_EMSCRIPTEN_QTDEFS := -DQT_NO_LINKED_LIST 
-DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO
 
 gb_Executable_EXT := .html
 ifeq ($(ENABLE_WASM_EXCEPTIONS),TRUE)
-gb_EMSCRIPTEN_EXCEPT = -fwasm-exceptions
+gb_EMSCRIPTEN_EXCEPT = -fwasm-exceptions -s SUPPORT_LONGJMP=wasm
 else
 gb_EMSCRIPTEN_EXCEPT = -s DISABLE_EXCEPTION_CATCHING=0
 endif
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 9182f223eb93..d580ff3d2f6a 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -94,20 +94,6 @@ $(eval $(call gb_Library_use_externals,vcl,\
     mdds_headers \
 ))
 
-# WASM LLVM doesn't support native EH + SjLj (setjump / longjump) used by 
libjpeg / libpng.
-# This otherwise breaks the PCH generation, so just move the files for that 
case.
-ifeq (EMSCRIPTEN_TRUE,$(OS)_$(ENABLE_WASM_EXCEPTIONS))
-$(eval $(call gb_Library_add_cxxobjects,vcl,\
-    vcl/source/filter/jpeg/jpegc \
-    vcl/source/filter/png/PngImageReader \
-))
-else
-$(eval $(call gb_Library_add_exception_objects,vcl,\
-    vcl/source/filter/jpeg/jpegc \
-    vcl/source/filter/png/PngImageReader \
-))
-endif
-
 $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/source/rendercontext/drawmode \
     vcl/skia/SkiaHelper \
@@ -474,6 +460,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/source/filter/ixpm/xpmread \
     vcl/source/filter/jpeg/Exif \
     vcl/source/filter/jpeg/jpeg \
+    vcl/source/filter/jpeg/jpegc \
     vcl/source/filter/jpeg/JpegReader \
     vcl/source/filter/jpeg/JpegWriter \
     vcl/source/filter/jpeg/JpegTransform \
@@ -484,6 +471,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/source/filter/wmf/wmf \
     vcl/source/filter/wmf/wmfexternal \
     vcl/source/filter/wmf/wmfwr \
+    vcl/source/filter/png/PngImageReader \
     vcl/source/filter/png/pngwrite \
     vcl/source/filter/webp/reader \
     vcl/source/filter/webp/writer \

Reply via email to