From f3a6df9542d688dce8cf2965ea2193601706d24a Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 05:46:19 +0900 Subject: [PATCH 01/19] 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 015282449a81b541a5f5ca33050263faef8d44b7 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 16:06:31 +0900 Subject: [PATCH 02/19] 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 4bef30f7df00..09b997e53146 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1936,6 +1936,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() @@ -3752,50 +3789,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 513dccc417c792e5e3a097143a4fc5ac280a0aee Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 16:22:12 +0900 Subject: [PATCH 03/19] 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 07b8689293eea05dcc7cfd1d992b7cffdbfea9e4 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 16:58:56 +0900 Subject: [PATCH 04/19] 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 59ed4885f63e0ba55e9f7517224dbb4c8013e3c1 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 17:07:37 +0900 Subject: [PATCH 05/19] 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 09b997e53146..58d3ed07f2fe 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1472,7 +1472,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) @@ -1575,7 +1575,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 @@ -1670,7 +1670,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) @@ -1739,7 +1739,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) @@ -1867,8 +1867,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) @@ -1937,7 +1938,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 @@ -1970,7 +1971,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) @@ -2108,7 +2109,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 @@ -2117,7 +2118,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=" @@ -2147,102 +2148,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() @@ -2486,7 +2393,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) @@ -2570,7 +2477,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 @@ -2658,7 +2565,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() @@ -2871,9 +2778,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) @@ -3003,7 +2910,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) @@ -3034,7 +2941,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) @@ -3080,8 +2987,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() @@ -3134,7 +3042,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() @@ -3201,9 +3109,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() @@ -3257,7 +3167,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) @@ -3313,7 +3223,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) @@ -3350,9 +3260,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() @@ -3480,15 +3392,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() @@ -3654,9 +3567,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) @@ -3783,7 +3696,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 @@ -3937,7 +3850,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}") @@ -4033,7 +3946,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 @@ -4230,8 +4143,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} @@ -4276,6 +4190,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). @@ -4318,14 +4234,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 5e57dea664b012d6b016cdde52e17eaf400c9bfb Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 21:20:28 +0900 Subject: [PATCH 06/19] 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 58d3ed07f2fe..ead33a596dcf 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -3583,7 +3583,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 cc108035b17585746f1dba3ee5f11021a64adc40 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 27 Jul 2026 22:43:18 +0900 Subject: [PATCH 07/19] 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 0b21fec6058b..957921368a42 100644 --- a/cpp/src/arrow/CMakeLists.txt +++ b/cpp/src/arrow/CMakeLists.txt @@ -108,7 +108,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 351f02bca79edd3715d7e899b19b79d1cdb7a292 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 09:21:13 +0900 Subject: [PATCH 08/19] 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 ead33a596dcf..d4fc6b8a5a69 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1962,6 +1962,7 @@ function(build_absl) absl::raw_logging_internal absl::spinlock_wait absl::stacktrace + absl::status absl::str_format_internal absl::strings absl::strings_internal @@ -2150,6 +2151,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 bbce70a8c14cb8db4bc4d5d5d70e7a3a7a4f8c2d Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 09:57:04 +0900 Subject: [PATCH 09/19] 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 d4fc6b8a5a69..f67a6ac67220 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1957,6 +1957,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 4e81a714f142cfa7ec5f4ee89da2679d5f38fa32 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 09:57:38 +0900 Subject: [PATCH 10/19] 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 f67a6ac67220..1dce8c0f7340 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1964,6 +1964,7 @@ function(build_absl) absl::spinlock_wait absl::stacktrace absl::status + absl::statusor absl::str_format_internal absl::strings absl::strings_internal From 5f688a1befabb1914b5f756dd802a8ccdb14ba82 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 10:41:47 +0900 Subject: [PATCH 11/19] 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 1dce8c0f7340..b6210da6fba7 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1956,10 +1956,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 7d6645fba7d3f5f62e06791abbca64d4b5051efe Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 12:09:39 +0900 Subject: [PATCH 12/19] 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 b6210da6fba7..6f1eb23970fd 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1959,6 +1959,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 @@ -2115,7 +2116,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 @@ -2123,9 +2128,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=" @@ -2156,10 +2158,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 c5803e4965bc90fe4b8f8966ed5e4d42b26207e1 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 13:22:25 +0900 Subject: [PATCH 13/19] 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 6f1eb23970fd..6af37358aa63 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1955,12 +1955,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 @@ -1970,6 +1977,7 @@ function(build_absl) absl::status absl::statusor absl::str_format_internal + absl::strerror absl::strings absl::strings_internal absl::symbolize From 10a5630040ca145eb0919ec6f5b118ca4e269ae3 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 13:34:42 +0900 Subject: [PATCH 14/19] 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 6af37358aa63..56c08588fb44 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1955,7 +1955,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 f418b9fcd7c701aafe12d2465708bfcfd3ab9d12 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 14:11:31 +0900 Subject: [PATCH 15/19] 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 56c08588fb44..476b8c9c4439 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1943,6 +1943,7 @@ function(build_absl) absl::bad_optional_access absl::bad_variant_access absl::base + absl::city absl::civil_time absl::cord absl::cord_internal @@ -1955,13 +1956,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 @@ -1969,6 +1973,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 e921394253b4433ea49ac5bd2dc98a80c83a9dcf Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 14:56:16 +0900 Subject: [PATCH 16/19] 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 476b8c9c4439..e60092257f85 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1957,6 +1957,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 @@ -1966,13 +1969,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 @@ -3721,11 +3726,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 8a2ba4df58878ce1b646baf4f7efe3d5456fdb00 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 15:33:34 +0900 Subject: [PATCH 17/19] 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 e60092257f85..38db293dd5db 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1975,6 +1975,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 @@ -1994,7 +1995,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 a12dcc43265b4a3ca6b350dcb069152698f833dd Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 16:57:35 +0900 Subject: [PATCH 18/19] 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 38db293dd5db..e848cf3dcd4f 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1969,16 +1969,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 729bbf8609b6c245f2ba129bf6dae879e1a251ef Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Tue, 28 Jul 2026 17:40:53 +0900 Subject: [PATCH 19/19] 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 e848cf3dcd4f..857ae6d29605 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1948,26 +1948,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 @@ -1975,7 +1975,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 @@ -1995,7 +1994,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)