summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2022-02-20 18:15:10 +0100
committerJan-Marek Glogowski <glogow@fbihome.de>2022-02-20 20:12:07 +0100
commitac65b4bb7a75ec71294a527bc4139356fcbf0929 (patch)
treee227c30ec8f686e880b05591f7b058818b315b2f
parent89d97041e881ef6429c069e7d0485db50e0371b2 (diff)
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 <glogow@fbihome.de>
-rw-r--r--configure.ac12
-rw-r--r--solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk2
-rw-r--r--vcl/Library_vcl.mk16
3 files changed, 15 insertions, 15 deletions
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 \