This is an automated email from the ASF dual-hosted git repository.
thisisnic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 2ecb29d980 GH-55267: [C++][R] Arrow 26.0.0 fails to build on CRAN
macOS builders: bundled simdjson C++20 concepts don't compile with the macOS 11
SDK (#55273)
2ecb29d980 is described below
commit 2ecb29d980e69fcc569167e8fed852af1a3afa3a
Author: Nic Crane <[email protected]>
AuthorDate: Tue Oct 27 14:42:42 2026 +0000
GH-55267: [C++][R] Arrow 26.0.0 fails to build on CRAN macOS builders:
bundled simdjson C++20 concepts don't compile with the macOS 11 SDK (#55273)
### Rationale for this change
CRAN failures on 26.0.0 release due to regex not catching incompatible
MacOSX11.sdk version
### What changes are included in this PR?
Make regex more permissive
### Are these changes tested?
No
### Are there any user-facing changes?
No
**PR code and description written by:**
- [x] Human
- [x] AI
**Reviewed before submission by:**
- [x] Human
- [x] AI
- [ ] Not reviewed
* GitHub Issue: #55267
Authored-by: Nic Crane <[email protected]>
Signed-off-by: Nic Crane <[email protected]>
---
cpp/cmake_modules/ThirdpartyToolchain.cmake | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 85a1961ea6..61b00f24d3 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -2878,10 +2878,19 @@ function(build_simdjson)
target_compile_definitions(simdjson PUBLIC SIMDJSON_EXCEPTIONS=0)
- # The macOS 11.3 SDK has incomplete C++20 concepts support, which prevents
- # simdjson headers from compiling. Disable simdjson concepts for this SDK.
- if(CMAKE_OSX_SYSROOT AND CMAKE_OSX_SYSROOT MATCHES "MacOSX11\\.3\\.sdk$")
- message(STATUS "Disabling simdjson concepts for macOS SDK 11.3")
+ # macOS SDKs before 13.3 ship a libc++ without <ranges> and with incomplete
+ # <concepts>, but simdjson enables its C++20 concepts API from the compiler's
+ # __cpp_concepts alone, so its headers fail to compile against those SDKs
+ # (GH-55267). Disable simdjson concepts for them. Arrow doesn't use that part
+ # of the simdjson API. simdjson considers these SDKs unsupported and won't
fix
+ # this upstream, see https://github.com/simdjson/simdjson/issues/2787.
+ #
+ # The SDK directory name may omit the minor version ("MacOSX11.sdk" on CRAN,
+ # "MacOSX11.3.sdk" in our as-cran CI job), so match both forms. This treats
+ # "MacOSX13.sdk" as too old, which is harmless.
+ if(CMAKE_OSX_SYSROOT AND CMAKE_OSX_SYSROOT MATCHES
+ "MacOSX(1[0-2](\\.[0-9]+)?|13(\\.[0-2])?)\\.sdk$")
+ message(STATUS "Disabling simdjson concepts for macOS SDK older than 13.3")
target_compile_definitions(simdjson PUBLIC SIMDJSON_CONCEPT_DISABLED=1)
endif()