summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 \