diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2021-04-23 13:45:05 +0200 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2021-05-05 21:14:54 +0200 |
commit | 8a4173987edfeeb7e49c70617d43e3adc911d333 (patch) | |
tree | 24360e0c3fe2b2138f9a291f143f9a6667c53510 /sc/source/core | |
parent | 013ddc4f5307df512767ca23b3922540b2b36d52 (diff) |
WASM: add initial support for Emscripten cross build
- configure with:
- --host=wasm64-local-emscripten
- had to make a few externals optional, so adding:
- --disable-nss
- --disable-cmis
- --disable-curl
Change-Id: I48d1c73d2675ad2e2beaf2c341578199efbd24ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111130
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Diffstat (limited to 'sc/source/core')
-rw-r--r-- | sc/source/core/tool/math.cxx | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sc/source/core/tool/math.cxx b/sc/source/core/tool/math.cxx index a077d5c3521a..3c496f83833c 100644 --- a/sc/source/core/tool/math.cxx +++ b/sc/source/core/tool/math.cxx @@ -53,8 +53,13 @@ double power(const double& fVal1, const double& fVal2) } // The pow() call must had been the most recent call to check errno or exception. if ((((math_errhandling & MATH_ERRNO) != 0) && (errno == EDOM || errno == ERANGE)) +// emscripten is currently broken by https://github.com/emscripten-core/emscripten/pull/11087 +// While the removal is correct for C99, it's not for C++11 (see http://www.cplusplus.com/reference/cfenv/FE_INEXACT/) +// But since emscripten currently doesn't support any math exceptions, we simply ignore them +#ifndef __EMSCRIPTEN__ || (((math_errhandling & MATH_ERREXCEPT) != 0) && std::fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW)) +#endif || !std::isfinite(fPow)) { fPow = CreateDoubleError(FormulaError::IllegalFPOperation); |