omjavaid commented on a change in pull request #11383:
URL: https://github.com/apache/arrow/pull/11383#discussion_r733150756
##########
File path: cpp/cmake_modules/ThirdpartyToolchain.cmake
##########
@@ -903,7 +903,13 @@ if(ARROW_USE_UBSAN)
set(ARROW_USE_NATIVE_INT128 FALSE)
else()
include(CheckCXXSymbolExists)
- check_cxx_symbol_exists("__SIZEOF_INT128__" "" ARROW_USE_NATIVE_INT128)
+ check_cxx_symbol_exists("_M_ARM64" "" WIN32_ARM64_TARGET)
+ if (WIN32_ARM64_TARGET AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ # NOTE: For clang/win-arm64, native int128_t produce linker errors
+ set(ARROW_USE_NATIVE_INT128 FALSE)
+ else ()
+ check_cxx_symbol_exists("__SIZEOF_INT128__" "" ARROW_USE_NATIVE_INT128)
+ endif()
Review comment:
Clang targeting windows-msvc expects to link against the VC++ runtime.
But VC++ doesnt support __int128 intrinsic which explain why using
--rtlib=compiler-rt compiles the code fine.
See link below for reference:
https://docs.microsoft.com/en-us/cpp/cpp/fundamental-types-cpp?view=msvc-160#integer-types
This appears to be a known issue in community but I could not find a bug
report against it. Please refer to following upstream discussions:
https://reviews.llvm.org/D91139#2429595
https://reviews.llvm.org/D91413
--
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]