jeroen opened a new issue, #52022: URL: https://github.com/apache/arrow/issues/52022
### Describe the enhancement requested The bundled xsimd 14.2.0 (`ARROW_XSIMD_BUILD_VERSION` in `cpp/thirdparty/versions.txt`) includes the MSVC-only `<arm64_neon.h>` header whenever `_WIN32` and NEON64 are defined: ```cpp // xsimd 14.2.0, include/xsimd/types/xsimd_neon_register.hpp #if XSIMD_WITH_NEON #if defined(_WIN32) && XSIMD_WITH_NEON64 #include <arm64_neon.h> #else #include <arm_neon.h> #endif #endif ``` `_WIN32` is also defined by mingw-w64 toolchains (e.g. the clangarm64 environment in MSYS2, and llvm-mingw for Windows on ARM). Those toolchains do not ship `<arm64_neon.h>`, so building Arrow C++ for Windows aarch64 with a mingw-w64 compiler fails with a missing header error. xsimd 14.3.0 narrows the condition to MSVC proper (`defined(_MSC_VER) && !defined(__clang__)`), so mingw-w64 and clang builds use `<arm_neon.h>` as expected: ```cpp // xsimd 14.3.0 #if defined(_MSC_VER) && !defined(__clang__) && XSIMD_WITH_NEON64 #include <arm64_neon.h> #else #include <arm_neon.h> #endif ``` We hit this when updating the Arrow build for the R Windows toolchain (https://github.com/r-windows/ucrt-libs), where we currently work around it by patching `versions.txt` to xsimd 14.3.0 in the PKGBUILD's `prepare()` step. Proposal: bump the bundled xsimd to 14.3.0 (version + SHA256 in `versions.txt`). ### Component(s) C++ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
