From bced3c60886453ac9ca69ccbe3114f1d1ad36f98 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 05:46:19 +0900 Subject: [PATCH 01/20] GH-50648: [Packaging][Linux] Enable OpenTelemetry --- dev/tasks/linux-packages/apache-arrow/Rakefile | 11 +++++++++++ .../apache-arrow/apt/debian-forky/Dockerfile | 2 ++ .../apache-arrow/apt/debian-trixie/Dockerfile | 2 ++ .../apache-arrow/apt/ubuntu-resolute/Dockerfile | 2 ++ .../linux-packages/apache-arrow/debian/control.in | 3 +++ dev/tasks/linux-packages/apache-arrow/debian/rules | 1 + .../linux-packages/apache-arrow/yum/arrow.spec.in | 1 + 7 files changed, 22 insertions(+) diff --git a/dev/tasks/linux-packages/apache-arrow/Rakefile b/dev/tasks/linux-packages/apache-arrow/Rakefile index cdb771084529..4b788233be3d 100644 --- a/dev/tasks/linux-packages/apache-arrow/Rakefile +++ b/dev/tasks/linux-packages/apache-arrow/Rakefile @@ -98,9 +98,20 @@ class ApacheArrowPackageTask < PackageTask control.gsub(/@CUDA_ARCHITECTURE@/, cuda_architecture) end + def apt_prepare_debian_control_open_telemerty(control, target) + case target + when /\Aubuntu-(?:jammy|noble)/ + use_system_open_telemetry = "#" + else + use_system_open_telemetry = "" + end + control.gsub(/@USE_SYSTEM_OPEN_TELEMETRY@/, use_system_open_telemetry) + end + def apt_prepare_debian_control(control_in, target) control = control_in.dup control = apt_prepare_debian_control_cuda_architecture(control, target) + control = apt_prepare_debian_control_open_telemetry(control, target) control end end diff --git a/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile index 0302516d7f75..5cea3ceb7ddd 100644 --- a/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile +++ b/dev/tasks/linux-packages/apache-arrow/apt/debian-forky/Dockerfile @@ -60,6 +60,7 @@ RUN \ libgtest-dev \ liblz4-dev \ libmimalloc-dev \ + libopentelemetry-proto-dev \ libprotobuf-dev \ libprotoc-dev \ libre2-dev \ @@ -74,6 +75,7 @@ RUN \ meson \ ninja-build \ nlohmann-json3-dev \ + opentelemetry-cpp-dev \ pkg-config \ protobuf-compiler-grpc \ python3-dev \ diff --git a/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile index d834708f0cc3..b51d7d5f9e7b 100644 --- a/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile +++ b/dev/tasks/linux-packages/apache-arrow/apt/debian-trixie/Dockerfile @@ -60,6 +60,7 @@ RUN \ libgtest-dev \ liblz4-dev \ libmimalloc-dev \ + libopentelemetry-proto-dev \ libprotobuf-dev \ libprotoc-dev \ libre2-dev \ @@ -74,6 +75,7 @@ RUN \ meson \ ninja-build \ nlohmann-json3-dev \ + opentelemetry-cpp-dev \ pkg-config \ protobuf-compiler-grpc \ python3-dev \ diff --git a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile index d0c31b3e056a..322cf2373956 100644 --- a/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile +++ b/dev/tasks/linux-packages/apache-arrow/apt/ubuntu-resolute/Dockerfile @@ -53,6 +53,7 @@ RUN \ libgrpc++-dev \ libgtest-dev \ liblz4-dev \ + libopentelemetry-proto-dev \ libprotobuf-dev \ libprotoc-dev \ libre2-dev \ @@ -68,6 +69,7 @@ RUN \ mold \ ninja-build \ nlohmann-json3-dev \ + opentelemetry-cpp-dev \ pkg-config \ protobuf-compiler-grpc \ python3-dev \ diff --git a/dev/tasks/linux-packages/apache-arrow/debian/control.in b/dev/tasks/linux-packages/apache-arrow/debian/control.in index db4e8477864c..4bcf29172797 100644 --- a/dev/tasks/linux-packages/apache-arrow/debian/control.in +++ b/dev/tasks/linux-packages/apache-arrow/debian/control.in @@ -18,6 +18,7 @@ Build-Depends: libgrpc++-dev, libgtest-dev, liblz4-dev, +@USE_SYSTEM_OPEN_TELEMETRY@ libopentelemetry-proto-dev libprotobuf-dev, libprotoc-dev, libre2-dev, @@ -35,6 +36,7 @@ Build-Depends: # in the debian-forky Dockerfile) skips this build dependency and the CUDA # packages below. nvidia-cuda-toolkit [!arm64] , +@USE_SYSTEM_OPEN_TELEMETRY@ opentelemetry-cpp-dev, pkg-config, protobuf-compiler, protobuf-compiler-grpc, @@ -172,6 +174,7 @@ Depends: libxxhash-dev, libzstd-dev, nlohmann-json-dev | nlohmann-json3-dev, +@USE_SYSTEM_OPEN_TELEMETRY@ opentelemetry-cpp-dev, protobuf-compiler-grpc, zlib1g-dev Description: Apache Arrow is a data processing library for analysis diff --git a/dev/tasks/linux-packages/apache-arrow/debian/rules b/dev/tasks/linux-packages/apache-arrow/debian/rules index 6f636d2d2de0..4be103d0c9ce 100755 --- a/dev/tasks/linux-packages/apache-arrow/debian/rules +++ b/dev/tasks/linux-packages/apache-arrow/debian/rules @@ -70,6 +70,7 @@ override_dh_auto_configure: -DARROW_WITH_BROTLI=ON \ -DARROW_WITH_BZ2=ON \ -DARROW_WITH_LZ4=ON \ + -DARROW_WITH_OPENTELEMETRY=ON \ -DARROW_WITH_SNAPPY=ON \ -DARROW_WITH_ZLIB=ON \ -DARROW_WITH_ZSTD=ON \ diff --git a/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in b/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in index aca2d468332d..0040b68f0698 100644 --- a/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in +++ b/dev/tasks/linux-packages/apache-arrow/yum/arrow.spec.in @@ -165,6 +165,7 @@ cd cpp -DARROW_WITH_BROTLI=ON \ -DARROW_WITH_BZ2=ON \ -DARROW_WITH_LZ4=ON \ + -DARROW_WITH_OPENTELEMETRY=ON \ -DARROW_WITH_SNAPPY=ON \ -DARROW_WITH_ZLIB=ON \ -DARROW_WITH_ZSTD=ON \ From fddc5e43c57017860accda9cd2428da39cff1307 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 16:06:31 +0900 Subject: [PATCH 02/20] Add missing absl::* to bundled_dependencies --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 81 ++++++++++----------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index dd1e5da15ea6..26fdd797e516 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1937,6 +1937,43 @@ function(build_absl) # Cannot use set_property on alias targets (absl::time is an alias) target_link_libraries(time INTERFACE ${CoreFoundation}) endif() + + list(APPEND + ARROW_BUNDLED_STATIC_LIBS + absl::bad_optional_access + absl::bad_variant_access + absl::base + absl::civil_time + absl::cord + absl::cord_internal + absl::cordz_functions + absl::cordz_info + absl::cordz_handle + absl::crc32c + absl::crc_internal + absl::crc_cord_state + absl::crc_cpu_detect + absl::debugging_internal + absl::demangle_internal + absl::exponential_biased + absl::int128 + absl::log_severity + absl::malloc_internal + absl::raw_logging_internal + absl::spinlock_wait + absl::stacktrace + absl::str_format_internal + absl::strings + absl::strings_internal + absl::symbolize + absl::synchronization + absl::throw_delegate + absl::time + absl::time_zone) + set(ARROW_BUNDLED_STATIC_LIBS + "${ARROW_BUNDLED_STATIC_LIBS}" + PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -3753,50 +3790,6 @@ function(build_google_cloud_cpp_storage) google-cloud-cpp::rest_internal google-cloud-cpp::common) - if(ABSL_VENDORED) - # Figure out what absl libraries (not header-only) are required by the - # google-cloud-cpp libraries above and add them to the bundled_dependencies - # - # pkg-config --libs absl_memory absl_strings absl_str_format absl_time absl_variant absl_base absl_memory absl_optional absl_span absl_time absl_variant - # (and then some regexing) - list(APPEND - ARROW_BUNDLED_STATIC_LIBS - absl::bad_optional_access - absl::bad_variant_access - absl::base - absl::civil_time - absl::cord - absl::cord_internal - absl::cordz_functions - absl::cordz_info - absl::cordz_handle - absl::crc32c - absl::crc_internal - absl::crc_cord_state - absl::crc_cpu_detect - absl::debugging_internal - absl::demangle_internal - absl::exponential_biased - absl::int128 - absl::log_severity - absl::malloc_internal - absl::raw_logging_internal - absl::spinlock_wait - absl::stacktrace - absl::str_format_internal - absl::strings - absl::strings_internal - absl::symbolize - absl::synchronization - absl::throw_delegate - absl::time - absl::time_zone) - endif() - - set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" - PARENT_SCOPE) - list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() From 298e2fd2396261681c33c68942eb02870e241ce9 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 16:22:12 +0900 Subject: [PATCH 03/20] Fix a typo --- dev/tasks/linux-packages/apache-arrow/Rakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tasks/linux-packages/apache-arrow/Rakefile b/dev/tasks/linux-packages/apache-arrow/Rakefile index 4b788233be3d..376b1afa20f7 100644 --- a/dev/tasks/linux-packages/apache-arrow/Rakefile +++ b/dev/tasks/linux-packages/apache-arrow/Rakefile @@ -98,7 +98,7 @@ class ApacheArrowPackageTask < PackageTask control.gsub(/@CUDA_ARCHITECTURE@/, cuda_architecture) end - def apt_prepare_debian_control_open_telemerty(control, target) + def apt_prepare_debian_control_open_telemetry(control, target) case target when /\Aubuntu-(?:jammy|noble)/ use_system_open_telemetry = "#" From 3642ebfcdc540198e97fe69b1c7c5930bbd8459e Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 16:58:56 +0900 Subject: [PATCH 04/20] Add a missing , --- dev/tasks/linux-packages/apache-arrow/debian/control.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tasks/linux-packages/apache-arrow/debian/control.in b/dev/tasks/linux-packages/apache-arrow/debian/control.in index 4bcf29172797..afd014d27844 100644 --- a/dev/tasks/linux-packages/apache-arrow/debian/control.in +++ b/dev/tasks/linux-packages/apache-arrow/debian/control.in @@ -18,7 +18,7 @@ Build-Depends: libgrpc++-dev, libgtest-dev, liblz4-dev, -@USE_SYSTEM_OPEN_TELEMETRY@ libopentelemetry-proto-dev +@USE_SYSTEM_OPEN_TELEMETRY@ libopentelemetry-proto-dev, libprotobuf-dev, libprotoc-dev, libre2-dev, From 7b5dd1018ea99fb66b90b221a5dab14d74b8751b Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 17:07:37 +0900 Subject: [PATCH 05/20] Prepend --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 180 ++++++-------------- 1 file changed, 50 insertions(+), 130 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 26fdd797e516..98b88d4b9a83 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1473,7 +1473,7 @@ macro(build_snappy) target_include_directories(${Snappy_TARGET} BEFORE INTERFACE "${SNAPPY_PREFIX}/include") add_dependencies(${Snappy_TARGET} snappy_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS ${Snappy_TARGET}) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ${Snappy_TARGET}) endmacro() if(ARROW_WITH_SNAPPY) @@ -1576,7 +1576,7 @@ macro(build_brotli) target_include_directories(Brotli::brotlidec BEFORE INTERFACE "${BROTLI_INCLUDE_DIR}") add_dependencies(Brotli::brotlidec brotli_ep) - list(APPEND + list(PREPEND ARROW_BUNDLED_STATIC_LIBS Brotli::brotlicommon Brotli::brotlienc @@ -1671,7 +1671,7 @@ macro(build_glog) target_include_directories(glog::glog BEFORE INTERFACE "${GLOG_INCLUDE_DIR}") add_dependencies(glog::glog glog_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS glog::glog) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS glog::glog) endmacro() if(ARROW_USE_GLOG) @@ -1740,7 +1740,7 @@ macro(build_gflags) set(GFLAGS_VENDORED TRUE) - list(APPEND ARROW_BUNDLED_STATIC_LIBS gflags::gflags_static) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS gflags::gflags_static) endmacro() if(ARROW_NEED_GFLAGS) @@ -1868,8 +1868,9 @@ function(build_thrift) set(THRIFT_VENDORED TRUE PARENT_SCOPE) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS thrift) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} thrift + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -1938,7 +1939,7 @@ function(build_absl) target_link_libraries(time INTERFACE ${CoreFoundation}) endif() - list(APPEND + list(PREPEND ARROW_BUNDLED_STATIC_LIBS absl::bad_optional_access absl::bad_variant_access @@ -1971,7 +1972,7 @@ function(build_absl) absl::time absl::time_zone) set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -2109,7 +2110,7 @@ function(build_protobuf) # Make protobuf_fc depend on the install completion marker add_custom_target(protobuf_fc DEPENDS "${PROTOBUF_PREFIX}/.protobuf_installed") - list(APPEND ARROW_BUNDLED_STATIC_LIBS protobuf::libprotobuf) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS protobuf::libprotobuf) if(CMAKE_CROSSCOMPILING) # If we are cross compiling, we need to build protoc for the host @@ -2118,7 +2119,7 @@ function(build_protobuf) set(PROTOBUF_HOST_COMPILER "${PROTOBUF_HOST_PREFIX}/bin/protoc") # cross-compiled (PyArrow on emscripten) needs utf8_range bundled explicitly. - list(APPEND ARROW_BUNDLED_STATIC_LIBS utf8_range) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS utf8_range) set(PROTOBUF_HOST_CMAKE_ARGS "-DCMAKE_CXX_FLAGS=" @@ -2148,102 +2149,8 @@ function(build_protobuf) PROPERTIES IMPORTED_LOCATION "${PROTOBUF_HOST_COMPILER}") add_dependencies(arrow::protobuf::host_protoc protobuf_ep_host) - # For cross-compilation along with ExternalProject we need to - # manually include absl deps to the bundled static libs so that - # they are available for the generated code in protobuf v31. - list(APPEND - ARROW_BUNDLED_STATIC_LIBS - absl::bad_any_cast_impl - absl::bad_optional_access - absl::bad_variant_access - absl::base - absl::city - absl::civil_time - absl::cord - absl::cord_internal - absl::cordz_functions - absl::cordz_handle - absl::cordz_info - absl::cordz_sample_token - absl::crc32c - absl::crc_cord_state - absl::crc_cpu_detect - absl::crc_internal - absl::debugging_internal - absl::decode_rust_punycode - absl::demangle_internal - absl::demangle_rust - absl::die_if_null - absl::examine_stack - absl::exponential_biased - absl::failure_signal_handler - absl::flags_commandlineflag - absl::flags_commandlineflag_internal - absl::flags_config - absl::flags_internal - absl::flags_marshalling - absl::flags_parse - absl::flags_private_handle_accessor - absl::flags_program_name - absl::flags_reflection - absl::flags_usage - absl::flags_usage_internal - absl::graphcycles_internal - absl::hash - absl::hashtablez_sampler - absl::int128 - absl::kernel_timeout_internal - absl::leak_check - absl::log_globals - absl::log_initialize - absl::log_internal_check_op - absl::log_internal_conditions - absl::log_internal_fnmatch - absl::log_internal_format - absl::log_internal_globals - absl::log_internal_log_sink_set - absl::log_internal_message - absl::log_internal_nullguard - absl::log_internal_proto - absl::log_severity - absl::log_sink - absl::low_level_hash - absl::malloc_internal - absl::periodic_sampler - absl::poison - absl::random_distributions - absl::random_internal_distribution_test_util - absl::random_internal_platform - absl::random_internal_pool_urbg - absl::random_internal_randen - absl::random_internal_randen_hwaes - absl::random_internal_randen_hwaes_impl - absl::random_internal_randen_slow - absl::random_internal_seed_material - absl::random_seed_gen_exception - absl::random_seed_sequences - absl::raw_hash_set - absl::raw_logging_internal - absl::scoped_set_env - absl::spinlock_wait - absl::stacktrace - absl::status - absl::statusor - absl::str_format_internal - absl::strerror - absl::strings - absl::strings_internal - absl::symbolize - absl::synchronization - absl::throw_delegate - absl::time - absl::time_zone - absl::utf8_for_code_point - absl::vlog_config_internal) endif() - set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" - PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -2487,7 +2394,7 @@ macro(build_substrait) target_link_libraries(substrait PUBLIC ${ARROW_PROTOBUF_LIBPROTOBUF}) add_dependencies(substrait substrait_gen) - list(APPEND ARROW_BUNDLED_STATIC_LIBS substrait) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS substrait) endmacro() if(ARROW_SUBSTRAIT) @@ -2571,7 +2478,7 @@ macro(build_jemalloc) INTERFACE "${JEMALLOC_INCLUDE_DIR}") add_dependencies(jemalloc::jemalloc jemalloc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS jemalloc::jemalloc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS jemalloc::jemalloc) set(jemalloc_VENDORED TRUE) # For config.h.cmake @@ -2659,7 +2566,7 @@ if(ARROW_MIMALLOC) endif() add_dependencies(mimalloc::mimalloc mimalloc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS mimalloc::mimalloc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS mimalloc::mimalloc) set(mimalloc_VENDORED TRUE) endif() @@ -2874,9 +2781,9 @@ function(build_simdjson) TRUE PARENT_SCOPE) - list(APPEND ARROW_BUNDLED_STATIC_LIBS simdjson) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS simdjson) set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -3004,7 +2911,7 @@ macro(build_zlib) PROPERTY IMPORTED_LOCATION "${EMSCRIPTEN_SYSROOT}/lib/wasm32-emscripten/pic/libz.a") target_include_directories(ZLIB::ZLIB INTERFACE "${EMSCRIPTEN_SYSROOT}/include") - list(APPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) else() set(ZLIB_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/zlib_ep/src/zlib_ep-install") if(MSVC) @@ -3035,7 +2942,7 @@ macro(build_zlib) target_include_directories(ZLIB::ZLIB BEFORE INTERFACE "${ZLIB_INCLUDE_DIRS}") add_dependencies(ZLIB::ZLIB zlib_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ZLIB::ZLIB) endif() set(ZLIB_VENDORED TRUE) @@ -3081,8 +2988,9 @@ function(build_lz4) # Add to bundled static libs. # We must use lz4_static (not imported target) not LZ4::lz4 (imported target). + list(PREPEND ARROW_BUNDLED_STATIC_LIBS lz4_static) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} lz4_static + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) endfunction() @@ -3135,7 +3043,7 @@ macro(build_zstd) add_dependencies(zstd::libzstd_static zstd_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS zstd::libzstd_static) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS zstd::libzstd_static) set(ZSTD_VENDORED TRUE) endmacro() @@ -3202,9 +3110,11 @@ function(build_re2) set_property(DIRECTORY ${re2_SOURCE_DIR} PROPERTY EXCLUDE_FROM_ALL TRUE) endif() + list(PREPEND ARROW_BUNDLED_STATIC_LIBS re2::re2) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} re2::re2 + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -3258,7 +3168,7 @@ macro(build_bzip2) add_dependencies(BZip2::BZip2 bzip2_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS BZip2::BZip2) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS BZip2::BZip2) endmacro() if(ARROW_WITH_BZ2) @@ -3314,7 +3224,7 @@ macro(build_utf8proc) add_dependencies(utf8proc::utf8proc utf8proc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS utf8proc::utf8proc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS utf8proc::utf8proc) endmacro() if(ARROW_WITH_UTF8PROC) @@ -3351,9 +3261,11 @@ function(build_cares) target_link_libraries(c-ares INTERFACE ${LIBRESOLV_LIBRARY}) endif() + list(PREPEND ARROW_BUNDLED_STATIC_LIBS c-ares::cares) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} c-ares::cares + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -3481,15 +3393,16 @@ function(build_grpc) add_dependencies(gRPC::grpcpp_for_bundling grpc_copy_grpc++) # Add gRPC libraries to bundled static libs. - list(APPEND + list(PREPEND ARROW_BUNDLED_STATIC_LIBS gRPC::address_sorting gRPC::gpr gRPC::grpc gRPC::grpcpp_for_bundling) set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() @@ -3655,9 +3568,9 @@ function(build_opentelemetry) opentelemetry-cpp::trace opentelemetry-cpp::version) - list(APPEND ARROW_BUNDLED_STATIC_LIBS ${_OPENTELEMETRY_BUNDLED_LIBS}) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ${_OPENTELEMETRY_BUNDLED_LIBS}) set(ARROW_BUNDLED_STATIC_LIBS - "${ARROW_BUNDLED_STATIC_LIBS}" + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) @@ -3784,7 +3697,7 @@ function(build_google_cloud_cpp_storage) # Remove unused directories to save build directory storage. # 141MB -> 79MB file(REMOVE_RECURSE "${google_cloud_cpp_SOURCE_DIR}/ci") - list(APPEND + list(PREPEND ARROW_BUNDLED_STATIC_LIBS google-cloud-cpp::storage google-cloud-cpp::rest_internal @@ -3938,7 +3851,7 @@ function(build_orc) add_custom_target(orc_copy_lib ALL DEPENDS "${ORC_STATIC_LIBRARY_FOR_AR}") add_dependencies(orc::orc_for_bundling orc_copy_lib) - list(APPEND ARROW_BUNDLED_STATIC_LIBS orc::orc_for_bundling) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS orc::orc_for_bundling) else() set(ORC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/orc_ep-install") set(ORC_HOME "${ORC_PREFIX}") @@ -4034,7 +3947,7 @@ function(build_orc) endif() target_link_libraries(orc::orc INTERFACE ${ARROW_PROTOBUF_LIBPROTOBUF}) add_dependencies(orc::orc orc_ep) - list(APPEND ARROW_BUNDLED_STATIC_LIBS orc::orc) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS orc::orc) endif() set(ORC_VENDORED @@ -4231,8 +4144,9 @@ function(build_awssdk) set(AWSSDK_VENDORED TRUE PARENT_SCOPE) + list(PREPEND ARROW_BUNDLED_STATIC_LIBS ${AWSSDK_LINK_LIBRARIES}) set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} ${AWSSDK_LINK_LIBRARIES} + ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) set(AWSSDK_LINK_LIBRARIES ${AWSSDK_LINK_LIBRARIES} @@ -4277,6 +4191,8 @@ endif() # Azure SDK for C++ function(build_azure_sdk) + list(APPEND CMAKE_MESSAGE_INDENT "Azure SDK for C++: ") + message(STATUS "Building Azure SDK for C++ from source") # On Windows, Azure SDK's WinHTTP transport requires WIL (Windows Implementation Libraries). @@ -4319,14 +4235,18 @@ function(build_azure_sdk) set(AZURE_SDK_VENDORED TRUE PARENT_SCOPE) + list(PREPEND + ARROW_BUNDLED_STATIC_LIBS + Azure::azure-core + Azure::azure-identity + Azure::azure-storage-blobs + Azure::azure-storage-common + Azure::azure-storage-files-datalake) set(ARROW_BUNDLED_STATIC_LIBS ${ARROW_BUNDLED_STATIC_LIBS} - Azure::azure-core - Azure::azure-identity - Azure::azure-storage-blobs - Azure::azure-storage-common - Azure::azure-storage-files-datalake PARENT_SCOPE) + + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() if(ARROW_WITH_AZURE_SDK) From 23b77bd50219d100441cf7e0f09728330d34487d Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 21:20:28 +0900 Subject: [PATCH 06/20] Specify COMPONENTS --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 6 +++++- cpp/src/arrow/ArrowConfig.cmake.in | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 98b88d4b9a83..c75d71f090ed 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -3584,7 +3584,11 @@ if(ARROW_WITH_OPENTELEMETRY) # cURL is required whether we build from source or use an existing installation # (OTel's cmake files do not call find_curl for you) find_curl() - resolve_dependency(opentelemetry-cpp) + resolve_dependency(opentelemetry-cpp + COMPONENTS + exporters_ostream + exporters_otlp_http + sdk) set(ARROW_OPENTELEMETRY_LIBS opentelemetry-cpp::trace opentelemetry-cpp::logs diff --git a/cpp/src/arrow/ArrowConfig.cmake.in b/cpp/src/arrow/ArrowConfig.cmake.in index cbadad4d7425..c12b3ce71033 100644 --- a/cpp/src/arrow/ArrowConfig.cmake.in +++ b/cpp/src/arrow/ArrowConfig.cmake.in @@ -74,7 +74,15 @@ macro(arrow_find_dependencies dependencies) endif() endif() endif() - find_dependency(${dependency}) + if(${dependency} STREQUAL "opentelemetry-cpp") + find_dependency(${dependency} + COMPONENTS + exporters_ostream + exporters_otlp_http + sdk) + else() + find_dependency(${dependency}) + endif() if(ARROW_OPENSSL_HOMEBREW_MAKE_DETECTABLE) set(OPENSSL_ROOT_DIR ${ARROW_OPENSSL_ROOT_DIR_ORIGINAL}) endif() From f1c923fcafbc03b50a65988aec32bb5a74c4a832 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 22:43:18 +0900 Subject: [PATCH 07/20] Fix source variable --- cpp/src/arrow/CMakeLists.txt | 2 +- dev/release/verify-yum.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/src/arrow/CMakeLists.txt b/cpp/src/arrow/CMakeLists.txt index 8a1ec4bca9d3..2569b9bcd4fa 100644 --- a/cpp/src/arrow/CMakeLists.txt +++ b/cpp/src/arrow/CMakeLists.txt @@ -114,7 +114,7 @@ if(ARROW_S3) endif() if(ARROW_WITH_OPENTELEMETRY) - if(opentelemetry_SOURCE STREQUAL "SYSTEM") + if(opentelemetry-cpp_SOURCE STREQUAL "SYSTEM") list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS ${ARROW_OPENTELEMETRY_LIBS}) endif() list(APPEND ARROW_STATIC_INSTALL_INTERFACE_LIBS CURL::libcurl) diff --git a/dev/release/verify-yum.sh b/dev/release/verify-yum.sh index c8827428c0c3..1cf7b3d2ddf6 100755 --- a/dev/release/verify-yum.sh +++ b/dev/release/verify-yum.sh @@ -197,10 +197,10 @@ if [ "${cmake_version_major}" -gt "3" ] || \ [ "${cmake_version_major}" -eq "3" -a "${cmake_version_minor}" -ge "25" ]; then cp -a "${TOP_SOURCE_DIR}/cpp/examples/minimal_build" build/ pushd build/minimal_build - cmake -S . -B build_shared + cmake -S . -B build_shared -DCMAKE_VERBOSE_MAKEFILE=ON make -C build_shared -j$(nproc) build_shared/arrow-example - cmake -S . -B build_static -DARROW_LINK_SHARED=OFF + cmake -S . -B build_static -DARROW_LINK_SHARED=OFF -DCMAKE_VERBOSE_MAKEFILE=ON make -C build_static -j$(nproc) build_static/arrow-example mkdir -p build_pkg_config From c710c320d59d66503f4506034cdec83bea66e590 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 09:21:13 +0900 Subject: [PATCH 08/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 5 +++++ dev/tasks/linux-packages/apache-arrow/Rakefile | 7 +++++++ dev/tasks/linux-packages/apache-arrow/debian/control.in | 1 + 3 files changed, 13 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index c75d71f090ed..f4a38f8eb601 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1963,6 +1963,7 @@ function(build_absl) absl::raw_logging_internal absl::spinlock_wait absl::stacktrace + absl::status absl::str_format_internal absl::strings absl::strings_internal @@ -2151,6 +2152,10 @@ function(build_protobuf) add_dependencies(arrow::protobuf::host_protoc protobuf_ep_host) endif() + set(ARROW_BUNDLED_STATIC_LIBS + ${ARROW_BUNDLED_STATIC_LIBS} + PARENT_SCOPE) + list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() diff --git a/dev/tasks/linux-packages/apache-arrow/Rakefile b/dev/tasks/linux-packages/apache-arrow/Rakefile index 376b1afa20f7..4ae3fba62434 100644 --- a/dev/tasks/linux-packages/apache-arrow/Rakefile +++ b/dev/tasks/linux-packages/apache-arrow/Rakefile @@ -104,6 +104,13 @@ class ApacheArrowPackageTask < PackageTask use_system_open_telemetry = "#" else use_system_open_telemetry = "" + if target.start_with?("debian-trixie") + system_open_telemetry_require_grpc = "" + else + system_open_telemetry_require_grpc = "#" + end + control = control.gsub(/@SYSTEM_OPEN_TELEMETRY_REQUIRE_GRPC@/, + system_open_telemetry_require_grpc) end control.gsub(/@USE_SYSTEM_OPEN_TELEMETRY@/, use_system_open_telemetry) end diff --git a/dev/tasks/linux-packages/apache-arrow/debian/control.in b/dev/tasks/linux-packages/apache-arrow/debian/control.in index afd014d27844..bb4b778481cc 100644 --- a/dev/tasks/linux-packages/apache-arrow/debian/control.in +++ b/dev/tasks/linux-packages/apache-arrow/debian/control.in @@ -164,6 +164,7 @@ Depends: libbz2-dev, libc-ares-dev, libcurl4-openssl-dev, +@SYSTEM_OPEN_TELEMETRY_REQUIRE_GRPC@ libgrpc++-dev, liblz4-dev, libprotobuf-dev, libprotoc-dev, From 37a0ae7e958a48fa4e0b770f74ce1b86370213a5 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 09:57:04 +0900 Subject: [PATCH 09/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 1 + dev/tasks/linux-packages/apache-arrow/Rakefile | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index f4a38f8eb601..29e636e96e33 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1958,6 +1958,7 @@ function(build_absl) absl::demangle_internal absl::exponential_biased absl::int128 + absl::leak_check absl::log_severity absl::malloc_internal absl::raw_logging_internal diff --git a/dev/tasks/linux-packages/apache-arrow/Rakefile b/dev/tasks/linux-packages/apache-arrow/Rakefile index 4ae3fba62434..c66b11908131 100644 --- a/dev/tasks/linux-packages/apache-arrow/Rakefile +++ b/dev/tasks/linux-packages/apache-arrow/Rakefile @@ -102,6 +102,7 @@ class ApacheArrowPackageTask < PackageTask case target when /\Aubuntu-(?:jammy|noble)/ use_system_open_telemetry = "#" + system_open_telemetry_require_grpc = "#" else use_system_open_telemetry = "" if target.start_with?("debian-trixie") @@ -109,10 +110,11 @@ class ApacheArrowPackageTask < PackageTask else system_open_telemetry_require_grpc = "#" end - control = control.gsub(/@SYSTEM_OPEN_TELEMETRY_REQUIRE_GRPC@/, - system_open_telemetry_require_grpc) end - control.gsub(/@USE_SYSTEM_OPEN_TELEMETRY@/, use_system_open_telemetry) + control + .gsub(/@USE_SYSTEM_OPEN_TELEMETRY@/, use_system_open_telemetry) + .gsub(/@SYSTEM_OPEN_TELEMETRY_REQUIRE_GRPC@/, + system_open_telemetry_require_grpc) end def apt_prepare_debian_control(control_in, target) From ad7e25e2a036d657540acb1e3ace8e03a7b6b6cc Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 09:57:38 +0900 Subject: [PATCH 10/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 29e636e96e33..68490e42bbfb 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1965,6 +1965,7 @@ function(build_absl) absl::spinlock_wait absl::stacktrace absl::status + absl::statusor absl::str_format_internal absl::strings absl::strings_internal From ecf8d7d2aa31f824268f9686052481924b2a1637 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 10:41:47 +0900 Subject: [PATCH 11/20] Add more Abseils --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 68490e42bbfb..b0ddf9049461 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1957,10 +1957,13 @@ function(build_absl) absl::debugging_internal absl::demangle_internal absl::exponential_biased + absl::hash absl::int128 absl::leak_check + absl::log_internal_message absl::log_severity absl::malloc_internal + absl::raw_hash_set absl::raw_logging_internal absl::spinlock_wait absl::stacktrace From d8581641fecc0a9186b8601eafb12a431a147d96 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 12:09:39 +0900 Subject: [PATCH 12/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index b0ddf9049461..b62c718488b2 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1960,6 +1960,7 @@ function(build_absl) absl::hash absl::int128 absl::leak_check + absl::log_internal_check_op absl::log_internal_message absl::log_severity absl::malloc_internal @@ -2116,7 +2117,11 @@ function(build_protobuf) # Make protobuf_fc depend on the install completion marker add_custom_target(protobuf_fc DEPENDS "${PROTOBUF_PREFIX}/.protobuf_installed") - list(PREPEND ARROW_BUNDLED_STATIC_LIBS protobuf::libprotobuf) + + list(PREPEND ARROW_BUNDLED_STATIC_LIBS protobuf::libprotobuf utf8_range) + set(ARROW_BUNDLED_STATIC_LIBS + ${ARROW_BUNDLED_STATIC_LIBS} + PARENT_SCOPE) if(CMAKE_CROSSCOMPILING) # If we are cross compiling, we need to build protoc for the host @@ -2124,9 +2129,6 @@ function(build_protobuf) set(PROTOBUF_HOST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/protobuf_ep_host-install") set(PROTOBUF_HOST_COMPILER "${PROTOBUF_HOST_PREFIX}/bin/protoc") - # cross-compiled (PyArrow on emscripten) needs utf8_range bundled explicitly. - list(PREPEND ARROW_BUNDLED_STATIC_LIBS utf8_range) - set(PROTOBUF_HOST_CMAKE_ARGS "-DCMAKE_CXX_FLAGS=" "-DCMAKE_C_FLAGS=" @@ -2157,10 +2159,6 @@ function(build_protobuf) add_dependencies(arrow::protobuf::host_protoc protobuf_ep_host) endif() - set(ARROW_BUNDLED_STATIC_LIBS - ${ARROW_BUNDLED_STATIC_LIBS} - PARENT_SCOPE) - list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() From ff8ce331ca65ecf2fd9b36c44e4b1c25114d7010 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 13:22:25 +0900 Subject: [PATCH 13/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index b62c718488b2..11a80243d26e 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1956,12 +1956,19 @@ function(build_absl) absl::crc_cpu_detect absl::debugging_internal absl::demangle_internal + absl::examin_stack absl::exponential_biased absl::hash absl::int128 absl::leak_check absl::log_internal_check_op + absl::log_internal_conditions + absl::log_internal_globals + absl::log_internal_log_sink_set absl::log_internal_message + absl::log_internal_nullguard + absl::log_internal_proto + absl::log_internal_structured_proto absl::log_severity absl::malloc_internal absl::raw_hash_set @@ -1971,6 +1978,7 @@ function(build_absl) absl::status absl::statusor absl::str_format_internal + absl::strerror absl::strings absl::strings_internal absl::symbolize From 07e0adf135ce0c41f471f7a3a4059a93b3a6525f Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 13:34:42 +0900 Subject: [PATCH 14/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 11a80243d26e..05f6debf153a 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1956,7 +1956,7 @@ function(build_absl) absl::crc_cpu_detect absl::debugging_internal absl::demangle_internal - absl::examin_stack + absl::examine_stack absl::exponential_biased absl::hash absl::int128 From 736d491268963eb1590f2dd98f84ebb1f3cdbfcb Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 14:11:31 +0900 Subject: [PATCH 15/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 05f6debf153a..e204e0ff5c47 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1944,6 +1944,7 @@ function(build_absl) absl::bad_optional_access absl::bad_variant_access absl::base + absl::city absl::civil_time absl::cord absl::cord_internal @@ -1956,13 +1957,16 @@ function(build_absl) absl::crc_cpu_detect absl::debugging_internal absl::demangle_internal + absl::demangle_rust absl::examine_stack absl::exponential_biased absl::hash absl::int128 + absl::kernel_timeout_internal absl::leak_check absl::log_internal_check_op absl::log_internal_conditions + absl::log_internal_format absl::log_internal_globals absl::log_internal_log_sink_set absl::log_internal_message @@ -1970,6 +1974,7 @@ function(build_absl) absl::log_internal_proto absl::log_internal_structured_proto absl::log_severity + absl::low_level_hash absl::malloc_internal absl::raw_hash_set absl::raw_logging_internal From 40e56deaf0b3d0bf2af757a111fd9edbd4d4c231 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 14:56:16 +0900 Subject: [PATCH 16/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index e204e0ff5c47..566e3c006a48 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1958,6 +1958,9 @@ function(build_absl) absl::debugging_internal absl::demangle_internal absl::demangle_rust + # absl::decode_rust_punycode must be after absl::demangle_rust because + # absl::demangle_rust uses absl::decode_rust_punycode. + absl::decode_rust_punycode absl::examine_stack absl::exponential_biased absl::hash @@ -1967,13 +1970,15 @@ function(build_absl) absl::log_internal_check_op absl::log_internal_conditions absl::log_internal_format - absl::log_internal_globals absl::log_internal_log_sink_set absl::log_internal_message absl::log_internal_nullguard absl::log_internal_proto absl::log_internal_structured_proto absl::log_severity + # absl::log_internal_globals must be after other absl::log_* because + # other absl::log_* refers symbols in absl::log_internal_globals. + absl::log_internal_globals absl::low_level_hash absl::malloc_internal absl::raw_hash_set @@ -3722,11 +3727,15 @@ function(build_google_cloud_cpp_storage) # Remove unused directories to save build directory storage. # 141MB -> 79MB file(REMOVE_RECURSE "${google_cloud_cpp_SOURCE_DIR}/ci") + list(PREPEND ARROW_BUNDLED_STATIC_LIBS google-cloud-cpp::storage google-cloud-cpp::rest_internal google-cloud-cpp::common) + set(ARROW_BUNDLED_STATIC_LIBS + ${ARROW_BUNDLED_STATIC_LIBS} + PARENT_SCOPE) list(POP_BACK CMAKE_MESSAGE_INDENT) endfunction() From 8ce6bf81ea78234f9ce9ab405d5719a79a020d3c Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 15:33:34 +0900 Subject: [PATCH 17/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 566e3c006a48..09908607b806 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1976,6 +1976,7 @@ function(build_absl) absl::log_internal_proto absl::log_internal_structured_proto absl::log_severity + absl::log_sink # absl::log_internal_globals must be after other absl::log_* because # other absl::log_* refers symbols in absl::log_internal_globals. absl::log_internal_globals @@ -1995,7 +1996,8 @@ function(build_absl) absl::synchronization absl::throw_delegate absl::time - absl::time_zone) + absl::time_zone + absl::utf8_for_code_point) set(ARROW_BUNDLED_STATIC_LIBS ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) From ebd981f484b4a3d5f8e114d4e5e56235819bee21 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 16:57:35 +0900 Subject: [PATCH 18/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 09908607b806..d5658453a7a9 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1970,16 +1970,15 @@ function(build_absl) absl::log_internal_check_op absl::log_internal_conditions absl::log_internal_format + absl::log_internal_globals absl::log_internal_log_sink_set absl::log_internal_message absl::log_internal_nullguard absl::log_internal_proto absl::log_internal_structured_proto + absl::log_globals absl::log_severity absl::log_sink - # absl::log_internal_globals must be after other absl::log_* because - # other absl::log_* refers symbols in absl::log_internal_globals. - absl::log_internal_globals absl::low_level_hash absl::malloc_internal absl::raw_hash_set From 9c7c84c4b0d6a19cf275a164cdb664d9ab500f5b Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 17:40:53 +0900 Subject: [PATCH 19/20] Fix link errors --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index d5658453a7a9..c03014872e2e 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1949,26 +1949,26 @@ function(build_absl) absl::cord absl::cord_internal absl::cordz_functions - absl::cordz_info absl::cordz_handle + absl::cordz_info absl::crc32c - absl::crc_internal absl::crc_cord_state absl::crc_cpu_detect + absl::crc_internal absl::debugging_internal + absl::decode_rust_punycode absl::demangle_internal absl::demangle_rust - # absl::decode_rust_punycode must be after absl::demangle_rust because - # absl::demangle_rust uses absl::decode_rust_punycode. - absl::decode_rust_punycode absl::examine_stack absl::exponential_biased absl::hash absl::int128 absl::kernel_timeout_internal absl::leak_check + absl::log_globals absl::log_internal_check_op absl::log_internal_conditions + absl::log_internal_fnmatch absl::log_internal_format absl::log_internal_globals absl::log_internal_log_sink_set @@ -1976,7 +1976,6 @@ function(build_absl) absl::log_internal_nullguard absl::log_internal_proto absl::log_internal_structured_proto - absl::log_globals absl::log_severity absl::log_sink absl::low_level_hash @@ -1996,7 +1995,8 @@ function(build_absl) absl::throw_delegate absl::time absl::time_zone - absl::utf8_for_code_point) + absl::utf8_for_code_point + absl::vlog_config_internal) set(ARROW_BUNDLED_STATIC_LIBS ${ARROW_BUNDLED_STATIC_LIBS} PARENT_SCOPE) From dc0fb97a32d57f1af9b4aea114aee7156ee2bab5 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Sat, 1 Aug 2026 16:21:03 +0900 Subject: [PATCH 20/20] Add more links --- cpp/cmake_modules/ThirdpartyToolchain.cmake | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index c03014872e2e..8506a07ec83d 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1941,6 +1941,7 @@ function(build_absl) list(PREPEND ARROW_BUNDLED_STATIC_LIBS + absl::bad_any_cast_impl absl::bad_optional_access absl::bad_variant_access absl::base @@ -1951,6 +1952,7 @@ function(build_absl) absl::cordz_functions absl::cordz_handle absl::cordz_info + absl::cordz_sample_token absl::crc32c absl::crc_cord_state absl::crc_cpu_detect @@ -1959,13 +1961,29 @@ function(build_absl) absl::decode_rust_punycode absl::demangle_internal absl::demangle_rust + absl::die_if_null absl::examine_stack absl::exponential_biased + absl::failure_signal_handler + absl::flags_commandlineflag + absl::flags_commandlineflag_internal + absl::flags_config + absl::flags_internal + absl::flags_marshalling + absl::flags_parse + absl::flags_private_handle_accessor + absl::flags_program_name + absl::flags_reflection + absl::flags_usage + absl::flags_usage_internal + absl::graphcycles_internal absl::hash + absl::hashtablez_sampler absl::int128 absl::kernel_timeout_internal absl::leak_check absl::log_globals + absl::log_initialize absl::log_internal_check_op absl::log_internal_conditions absl::log_internal_fnmatch @@ -1980,8 +1998,22 @@ function(build_absl) absl::log_sink absl::low_level_hash absl::malloc_internal + absl::periodic_sampler + absl::poison + absl::random_distributions + absl::random_internal_distribution_test_util + absl::random_internal_platform + absl::random_internal_pool_urbg + absl::random_internal_randen + absl::random_internal_randen_hwaes + absl::random_internal_randen_hwaes_impl + absl::random_internal_randen_slow + absl::random_internal_seed_material + absl::random_seed_gen_exception + absl::random_seed_sequences absl::raw_hash_set absl::raw_logging_internal + absl::scoped_set_env absl::spinlock_wait absl::stacktrace absl::status