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]

Reply via email to