From 6dc6509ac0a27b41acf647e14a1abdb01d74dd31 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Thu, 10 Oct 2024 09:09:08 +0900 Subject: [PATCH] GH-44342: [C++] Disable jemalloc by default on ARM jemalloc may have a problem on ARM. See also: https://github.com/apache/arrow/issues/44342 --- ci/scripts/python_wheel_manylinux_build.sh | 4 +++- cpp/cmake_modules/DefineOptions.cmake | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ci/scripts/python_wheel_manylinux_build.sh b/ci/scripts/python_wheel_manylinux_build.sh index 885019ff3049f..6365fcfacfc38 100755 --- a/ci/scripts/python_wheel_manylinux_build.sh +++ b/ci/scripts/python_wheel_manylinux_build.sh @@ -55,7 +55,6 @@ echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ===" : ${ARROW_GANDIVA:=OFF} : ${ARROW_GCS:=ON} : ${ARROW_HDFS:=ON} -: ${ARROW_JEMALLOC:=ON} : ${ARROW_MIMALLOC:=ON} : ${ARROW_ORC:=ON} : ${ARROW_PARQUET:=ON} @@ -81,6 +80,9 @@ if [[ "$(uname -m)" == arm* ]] || [[ "$(uname -m)" == aarch* ]]; then # 4k and 64k page arm64 systems. For more context see # https://github.com/apache/arrow/issues/10929 export ARROW_EXTRA_CMAKE_FLAGS="-DARROW_JEMALLOC_LG_PAGE=16" + : ${ARROW_JEMALLOC:=OFF} +else + : ${ARROW_JEMALLOC:=ON} fi mkdir /tmp/arrow-build diff --git a/cpp/cmake_modules/DefineOptions.cmake b/cpp/cmake_modules/DefineOptions.cmake index 755887314d110..d823444cf790f 100644 --- a/cpp/cmake_modules/DefineOptions.cmake +++ b/cpp/cmake_modules/DefineOptions.cmake @@ -364,7 +364,8 @@ takes precedence over ccache if a storage backend is configured" ON) set(ARROW_JEMALLOC_DESCRIPTION "Build the Arrow jemalloc-based allocator") if(WIN32 - OR "${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD" + OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" + OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch|ARM|arm" OR NOT ARROW_ENABLE_THREADING) # jemalloc is not supported on Windows. # @@ -372,6 +373,9 @@ takes precedence over ccache if a storage backend is configured" ON) # be built with --disable-libdl on FreeBSD. Because lazy-lock feature # is required on FreeBSD. Lazy-lock feature requires libdl. # + # jemalloc may have a problem on ARM. + # See also: https://github.com/apache/arrow/issues/44342 + # # jemalloc requires thread. define_option(ARROW_JEMALLOC ${ARROW_JEMALLOC_DESCRIPTION} OFF) else()