diff --git a/dev/conbench_envs/hooks.sh b/dev/conbench_envs/hooks.sh index 60a482adfcf..5cf75a5c734 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 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 [ -z "$(R CMD config CXX20)" ]; 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 .;) }