Description: Use Debian's system mimalloc instead of vendoring.
Forwarded: not-needed

Index: arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake
===================================================================
--- arrow.orig/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -2323,70 +2323,9 @@ if(ARROW_MIMALLOC)
     message(FATAL_ERROR "Can't use mimalloc with ARROW_ENABLE_THREADING=OFF")
   endif()
 
-  message(STATUS "Building (vendored) mimalloc from source")
-  # We only use a vendored mimalloc as we want to control its build options.
-
-  set(MIMALLOC_LIB_BASE_NAME "mimalloc")
-  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")
-  set(MIMALLOC_STATIC_LIB
-      "${MIMALLOC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${MIMALLOC_LIB_BASE_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
-  )
-
-  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_PATCH_COMMAND "")
-  if(${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
-    find_program(PATCH patch REQUIRED)
-    set(MIMALLOC_PATCH_COMMAND ${PATCH} -p1 -i
-                               ${CMAKE_CURRENT_LIST_DIR}/mimalloc-1138.patch)
-  endif()
-
-  set(MIMALLOC_CMAKE_ARGS
-      ${EP_COMMON_CMAKE_ARGS}
-      "-DCMAKE_C_FLAGS=${MIMALLOC_C_FLAGS}"
-      "-DCMAKE_INSTALL_PREFIX=${MIMALLOC_PREFIX}"
-      -DMI_INSTALL_TOPLEVEL=ON
-      -DMI_OVERRIDE=OFF
-      -DMI_LOCAL_DYNAMIC_TLS=ON
-      -DMI_BUILD_OBJECT=OFF
-      -DMI_BUILD_SHARED=OFF
-      -DMI_BUILD_TESTS=OFF
-      # GH-47229: Force mimalloc to generate armv8.0 binary
-      -DMI_NO_OPT_ARCH=ON)
-
-  externalproject_add(mimalloc_ep
-                      ${EP_COMMON_OPTIONS}
-                      URL ${MIMALLOC_SOURCE_URL}
-                      URL_HASH "SHA256=${ARROW_MIMALLOC_BUILD_SHA256_CHECKSUM}"
-                      PATCH_COMMAND ${MIMALLOC_PATCH_COMMAND}
-                      CMAKE_ARGS ${MIMALLOC_CMAKE_ARGS}
-                      BUILD_BYPRODUCTS "${MIMALLOC_STATIC_LIB}")
-
-  file(MAKE_DIRECTORY ${MIMALLOC_INCLUDE_DIR})
-
-  add_library(mimalloc::mimalloc STATIC IMPORTED)
-  set_target_properties(mimalloc::mimalloc PROPERTIES IMPORTED_LOCATION
-                                                      "${MIMALLOC_STATIC_LIB}")
-  target_include_directories(mimalloc::mimalloc BEFORE
-                             INTERFACE "${MIMALLOC_INCLUDE_DIR}")
-  target_link_libraries(mimalloc::mimalloc INTERFACE Threads::Threads)
-  if(WIN32)
-    target_link_libraries(mimalloc::mimalloc INTERFACE "bcrypt.lib" "psapi.lib")
-  endif()
-  add_dependencies(mimalloc::mimalloc mimalloc_ep)
-
-  list(APPEND ARROW_BUNDLED_STATIC_LIBS mimalloc::mimalloc)
-
-  set(mimalloc_VENDORED TRUE)
+  find_package(mimalloc REQUIRED)
+  add_library(mimalloc::mimalloc ALIAS mimalloc)
+  list(APPEND ARROW_SHARED_LINK_LIBS mimalloc::mimalloc)
 endif()
 
 # ----------------------------------------------------------------------
