From fbe2d82ef77733700ce96d01e5918f44f1954938 Mon Sep 17 00:00:00 2001 From: Nic Crane Date: Sat, 24 Jan 2026 11:18:43 -0500 Subject: [PATCH 1/2] Add cpp20 config --- dev/conbench_envs/hooks.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/dev/conbench_envs/hooks.sh b/dev/conbench_envs/hooks.sh index 60a482adfcf..dc81ceeaf23 100755 --- a/dev/conbench_envs/hooks.sh +++ b/dev/conbench_envs/hooks.sh @@ -59,6 +59,25 @@ build_arrow_python() { build_arrow_r() { cat ci/etc/rprofile >> $(R RHOME)/etc/Rprofile.site + + # Ensure CXX20 is configured in R's Makeconf. + # conda-forge's R may not have CXX20 set even though the compiler supports it. + # Arrow requires C++20, so we need to add these settings if missing. + MAKECONF="$(R RHOME)/etc/Makeconf" + if ! grep -q "^CXX20 " "$MAKECONF"; then + echo "*** CXX20 not configured in R, adding it to Makeconf" + cat >> "$MAKECONF" << 'EOF' + +# Added for Arrow C++20 support +CXX20 = g++ +CXX20FLAGS = -g -O2 $(LTO) +CXX20PICFLAGS = -fpic +CXX20STD = -std=gnu++20 +SHLIB_CXX20LD = $(CXX20) $(CXX20STD) +SHLIB_CXX20LDFLAGS = -shared +EOF + fi + ci/scripts/r_deps.sh $(pwd) $(pwd) (cd r; R CMD INSTALL .;) } From f164e4dfe6241749f5a080ccb673cea7fe9d0ece Mon Sep 17 00:00:00 2001 From: Nic Crane Date: Sat, 24 Jan 2026 11:40:24 -0500 Subject: [PATCH 2/2] Check more thoroughly for config not existence --- dev/conbench_envs/hooks.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/conbench_envs/hooks.sh b/dev/conbench_envs/hooks.sh index dc81ceeaf23..5cf75a5c734 100755 --- a/dev/conbench_envs/hooks.sh +++ b/dev/conbench_envs/hooks.sh @@ -61,10 +61,10 @@ build_arrow_r() { cat ci/etc/rprofile >> $(R RHOME)/etc/Rprofile.site # Ensure CXX20 is configured in R's Makeconf. - # conda-forge's R may not have CXX20 set even though the compiler supports it. + # conda-forge's R may have empty CXX20 entries even though the compiler supports it. # Arrow requires C++20, so we need to add these settings if missing. MAKECONF="$(R RHOME)/etc/Makeconf" - if ! grep -q "^CXX20 " "$MAKECONF"; then + if [ -z "$(R CMD config CXX20)" ]; then echo "*** CXX20 not configured in R, adding it to Makeconf" cat >> "$MAKECONF" << 'EOF'