BLD: allow targeting webassembly without emscripten by charris · Pull Request #29447 · numpy/numpy

Backport of #29436.

#28769 introduced the usage of the clang fp exceptions(strict) pragma. However, this is broken when compiling for WebAssembly.

For that reason, the pragma is omitted when targeting Emscripten (by checking for __EMSCRIPTEN__). However, Clang can compile to WebAssembly without Emscripten. By also including a check for __wasm__, this patch allows NumPy to detect WebAssembly targets compiled without Emscripten.

This broadens NumPy's compatibility with WebAssembly toolchains and environments other than emscripten, such as WASIX.

This PR is a follow-up to #29053, which also added __wasm__ to a check that was previously Emscripten-only. When compiling for WASIX, we didn't encounter this issue previously, as we were targeting an older NumPy version.