From 1fe3480b391d70172d7e8d4ecdb89db5197fae7f Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Mon, 31 Mar 2025 16:02:33 +0200 Subject: [PATCH 1/2] GH-45978: [C++] Bump bundled mimalloc version Update bundled mimalloc version from 2.0.6 to 2.2.4. This will also help fix the CMake 4.0 compatibility issues. --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 14 +++++++++----- cpp/thirdparty/versions.txt | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 29dde407169..2efb54ff05f 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -2275,22 +2275,26 @@ if(ARROW_MIMALLOC) # We only use a vendored mimalloc as we want to control its build options. set(MIMALLOC_LIB_BASE_NAME "mimalloc") - if(WIN32) - set(MIMALLOC_LIB_BASE_NAME "${MIMALLOC_LIB_BASE_NAME}-static") - endif() if(${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG") set(MIMALLOC_LIB_BASE_NAME "${MIMALLOC_LIB_BASE_NAME}-${LOWERCASE_BUILD_TYPE}") endif() set(MIMALLOC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/mimalloc_ep/src/mimalloc_ep") - set(MIMALLOC_INCLUDE_DIR "${MIMALLOC_PREFIX}/include/mimalloc-2.0") + set(MIMALLOC_INCLUDE_DIR "${MIMALLOC_PREFIX}/include/mimalloc-2.2") set(MIMALLOC_STATIC_LIB - "${MIMALLOC_PREFIX}/lib/mimalloc-2.0/${CMAKE_STATIC_LIBRARY_PREFIX}${MIMALLOC_LIB_BASE_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}" + "${MIMALLOC_PREFIX}/lib/mimalloc-2.2/${CMAKE_STATIC_LIBRARY_PREFIX}${MIMALLOC_LIB_BASE_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}" ) + set(MIMALLOC_C_FLAGS) + if(WIN32) + # Workaround https://github.com/microsoft/mimalloc/issues/910 on RTools40 + set(MIMALLOC_C_FLAGS "${MIMALLOC_C_FLAGS} -DERROR_COMMITMENT_MINIMUM=635") + endif() + set(MIMALLOC_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} "-DCMAKE_INSTALL_PREFIX=${MIMALLOC_PREFIX}" + "-DCMAKE_C_FLAGS=${MIMALLOC_C_FLAGS}" -DMI_OVERRIDE=OFF -DMI_LOCAL_DYNAMIC_TLS=ON -DMI_BUILD_OBJECT=OFF diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index 3a8ad73e137..1fc53c4d5e6 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -82,8 +82,8 @@ ARROW_JEMALLOC_BUILD_VERSION=5.3.0 ARROW_JEMALLOC_BUILD_SHA256_CHECKSUM=2db82d1e7119df3e71b7640219b6dfe84789bc0537983c3b7ac4f7189aecfeaa ARROW_LZ4_BUILD_VERSION=v1.10.0 ARROW_LZ4_BUILD_SHA256_CHECKSUM=537512904744b35e232912055ccf8ec66d768639ff3abe5788d90d792ec5f48b -ARROW_MIMALLOC_BUILD_VERSION=v2.0.6 -ARROW_MIMALLOC_BUILD_SHA256_CHECKSUM=9f05c94cc2b017ed13698834ac2a3567b6339a8bde27640df5a1581d49d05ce5 +ARROW_MIMALLOC_BUILD_VERSION=v2.2.4 +ARROW_MIMALLOC_BUILD_SHA256_CHECKSUM=754a98de5e2912fddbeaf24830f982b4540992f1bab4a0a8796ee118e0752bda ARROW_NLOHMANN_JSON_BUILD_VERSION=v3.12.0 ARROW_NLOHMANN_JSON_BUILD_SHA256_CHECKSUM=4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187 ARROW_OPENTELEMETRY_BUILD_VERSION=v1.21.0 From cc5d86e206e79bbb7734273a808456ca4ef51bcf Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Thu, 12 Jun 2025 07:20:29 +0200 Subject: [PATCH 2/2] Apply suggestions --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 2efb54ff05f..193711a6fbd 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -2285,16 +2285,16 @@ if(ARROW_MIMALLOC) "${MIMALLOC_PREFIX}/lib/mimalloc-2.2/${CMAKE_STATIC_LIBRARY_PREFIX}${MIMALLOC_LIB_BASE_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}" ) - set(MIMALLOC_C_FLAGS) - if(WIN32) + set(MIMALLOC_C_FLAGS ${EP_C_FLAGS}) + if(MINGW) # Workaround https://github.com/microsoft/mimalloc/issues/910 on RTools40 set(MIMALLOC_C_FLAGS "${MIMALLOC_C_FLAGS} -DERROR_COMMITMENT_MINIMUM=635") endif() set(MIMALLOC_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS} - "-DCMAKE_INSTALL_PREFIX=${MIMALLOC_PREFIX}" "-DCMAKE_C_FLAGS=${MIMALLOC_C_FLAGS}" + "-DCMAKE_INSTALL_PREFIX=${MIMALLOC_PREFIX}" -DMI_OVERRIDE=OFF -DMI_LOCAL_DYNAMIC_TLS=ON -DMI_BUILD_OBJECT=OFF