diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index 2b703a3e1ca3..4efc847dafcd 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -1784,29 +1784,8 @@ function(build_thrift) if(CMAKE_VERSION VERSION_LESS 3.26) message(FATAL_ERROR "Require CMake 3.26 or later for building bundled Apache Thrift") endif() - set(THRIFT_PATCH_COMMAND) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - find_program(PATCH patch) - if(PATCH) - list(APPEND - THRIFT_PATCH_COMMAND - ${PATCH} - -p1 - -i) - else() - find_program(GIT git) - if(GIT) - list(APPEND THRIFT_PATCH_COMMAND ${GIT} apply) - endif() - endif() - if(THRIFT_PATCH_COMMAND) - # https://github.com/apache/thrift/pull/3187 - list(APPEND THRIFT_PATCH_COMMAND ${CMAKE_CURRENT_LIST_DIR}/thrift-3187.patch) - endif() - endif() fetchcontent_declare(thrift ${FC_DECLARE_COMMON_OPTIONS} - PATCH_COMMAND ${THRIFT_PATCH_COMMAND} URL ${THRIFT_SOURCE_URL} URL_HASH "SHA256=${ARROW_THRIFT_BUILD_SHA256_CHECKSUM}") diff --git a/cpp/cmake_modules/thrift-3187.patch b/cpp/cmake_modules/thrift-3187.patch deleted file mode 100644 index 44a916148810..000000000000 --- a/cpp/cmake_modules/thrift-3187.patch +++ /dev/null @@ -1,162 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -From ad893633097b05ecdba8aa0f27aaf173dc7839b2 Mon Sep 17 00:00:00 2001 -From: Sutou Kouhei -Date: Fri, 8 Aug 2025 16:19:10 +0900 -Subject: [PATCH] THRIFT-3268: Suppress gnu-zero-variadic-macro-arguments - warnings - -Client: cpp - -We can reproduce these warnings by: - - CC=clang CXX=clang++ \ - cmake \ - -S . \ - -B ../thrift.build \ - -DWITH_{AS3,JAVA,JAVASCRIPT,NODEJS,PYTHON,C_GLIB}=OFF \ - -DCMAKE_CXX_FLAGS="-Wgnu-zero-variadic-macro-arguments" - cmake --build ../thrift.build - -Sample warning: - - lib/cpp/src/thrift/TLogging.h:119:13: warning: token pasting of ',' and __VA_ARGS__ is a GNU extension [-Wgnu-zero-variadic-macro-arguments] - 119 | ##__VA_ARGS__); \ - | ^ ---- - lib/cpp/src/thrift/TLogging.h | 12 ++++++------ - lib/cpp/test/TransportTest.cpp | 12 ++++++------ - lib/cpp/test/ZlibTest.cpp | 6 ++---- - 3 files changed, 14 insertions(+), 16 deletions(-) - -diff --git a/lib/cpp/src/thrift/TLogging.h b/lib/cpp/src/thrift/TLogging.h -index 07ff030f7da..64e9bf80bbb 100644 ---- a/lib/cpp/src/thrift/TLogging.h -+++ b/lib/cpp/src/thrift/TLogging.h -@@ -55,7 +55,7 @@ - #if T_GLOBAL_DEBUGGING_LEVEL > 0 - #define T_DEBUG(format_string, ...) \ - if (T_GLOBAL_DEBUGGING_LEVEL > 0) { \ -- fprintf(stderr, "[%s,%d] " format_string " \n", __FILE__, __LINE__, ##__VA_ARGS__); \ -+ fprintf(stderr, "[%s,%d] " format_string " \n", __FILE__, __LINE__, __VA_ARGS__); \ - } - #else - #define T_DEBUG(format_string, ...) -@@ -80,7 +80,7 @@ - __FILE__, \ - __LINE__, \ - dbgtime, \ -- ##__VA_ARGS__); \ -+ __VA_ARGS__); \ - } \ - } - #else -@@ -96,7 +96,7 @@ - */ - #define T_DEBUG_L(level, format_string, ...) \ - if ((level) > 0) { \ -- fprintf(stderr, "[%s,%d] " format_string " \n", __FILE__, __LINE__, ##__VA_ARGS__); \ -+ fprintf(stderr, "[%s,%d] " format_string " \n", __FILE__, __LINE__, __VA_ARGS__); \ - } - - /** -@@ -116,7 +116,7 @@ - __FILE__, \ - __LINE__, \ - dbgtime, \ -- ##__VA_ARGS__); \ -+ __VA_ARGS__); \ - } - - /** -@@ -137,7 +137,7 @@ - __FILE__, \ - __LINE__, \ - dbgtime, \ -- ##__VA_ARGS__); \ -+ __VA_ARGS__); \ - exit(1); \ - } - -@@ -155,7 +155,7 @@ - time(&now); \ - THRIFT_CTIME_R(&now, dbgtime); \ - dbgtime[24] = '\0'; \ -- fprintf(stderr, "[%s] " format_string " \n", dbgtime, ##__VA_ARGS__); \ -+ fprintf(stderr, "[%s] " format_string " \n", dbgtime, __VA_ARGS__); \ - } \ - } - #else -diff --git a/lib/cpp/test/TransportTest.cpp b/lib/cpp/test/TransportTest.cpp -index d6d38595a6b..8a05465773a 100644 ---- a/lib/cpp/test/TransportTest.cpp -+++ b/lib/cpp/test/TransportTest.cpp -@@ -784,23 +784,23 @@ void test_borrow_none_available() { - **************************************************************************/ - - #define ADD_TEST_RW(CoupledTransports, totalSize, ...) \ -- addTestRW(BOOST_STRINGIZE(CoupledTransports), totalSize, ##__VA_ARGS__); -+ addTestRW(BOOST_STRINGIZE(CoupledTransports), totalSize, __VA_ARGS__); - - #define TEST_RW(CoupledTransports, totalSize, ...) \ - do { \ - /* Add the test as specified, to test the non-virtual function calls */ \ -- ADD_TEST_RW(CoupledTransports, totalSize, ##__VA_ARGS__); \ -+ ADD_TEST_RW(CoupledTransports, totalSize, __VA_ARGS__); \ - /* \ - * Also test using the transport as a TTransport*, to test \ - * the read_virt()/write_virt() calls \ - */ \ -- ADD_TEST_RW(CoupledTTransports, totalSize, ##__VA_ARGS__); \ -+ ADD_TEST_RW(CoupledTTransports, totalSize, __VA_ARGS__); \ - /* Test wrapping the transport with TBufferedTransport */ \ -- ADD_TEST_RW(CoupledBufferedTransportsT, totalSize, ##__VA_ARGS__); \ -+ ADD_TEST_RW(CoupledBufferedTransportsT, totalSize, __VA_ARGS__); \ - /* Test wrapping the transport with TFramedTransports */ \ -- ADD_TEST_RW(CoupledFramedTransportsT, totalSize, ##__VA_ARGS__); \ -+ ADD_TEST_RW(CoupledFramedTransportsT, totalSize, __VA_ARGS__); \ - /* Test wrapping the transport with TZlibTransport */ \ -- ADD_TEST_RW(CoupledZlibTransportsT, totalSize, ##__VA_ARGS__); \ -+ ADD_TEST_RW(CoupledZlibTransportsT, totalSize, __VA_ARGS__); \ - } while (0) - - #define ADD_TEST_BLOCKING(CoupledTransports) \ -diff --git a/lib/cpp/test/ZlibTest.cpp b/lib/cpp/test/ZlibTest.cpp -index 274a243913c..ea9c617f625 100644 ---- a/lib/cpp/test/ZlibTest.cpp -+++ b/lib/cpp/test/ZlibTest.cpp -@@ -347,8 +347,7 @@ void test_get_underlying_transport() { - do { \ - ::std::ostringstream name_ss; \ - name_ss << name << "-" << BOOST_STRINGIZE(_FUNC); \ -- ::std::function test_func = \ -- ::std::bind(_FUNC, ##__VA_ARGS__); \ -+ ::std::function test_func = ::std::bind(_FUNC, __VA_ARGS__); \ - ::boost::unit_test::test_case* tc \ - = ::boost::unit_test::make_test_case(test_func, name_ss.str(), __FILE__, __LINE__); \ - (suite)->add(tc); \ -@@ -359,8 +358,7 @@ void test_get_underlying_transport() { - ::std::ostringstream name_ss; \ - name_ss << name << "-" << BOOST_STRINGIZE(_FUNC); \ - ::boost::unit_test::test_case* tc \ -- = ::boost::unit_test::make_test_case(::std::bind(_FUNC, \ -- ##__VA_ARGS__), \ -+ = ::boost::unit_test::make_test_case(::std::bind(_FUNC, __VA_ARGS__), \ - name_ss.str()); \ - (suite)->add(tc); \ - } while (0) diff --git a/cpp/thirdparty/versions.txt b/cpp/thirdparty/versions.txt index 42d22b987499..f35d0539a62d 100644 --- a/cpp/thirdparty/versions.txt +++ b/cpp/thirdparty/versions.txt @@ -110,8 +110,8 @@ ARROW_SUBSTRAIT_BUILD_VERSION=v0.44.0 ARROW_SUBSTRAIT_BUILD_SHA256_CHECKSUM=f989a862f694e7dbb695925ddb7c4ce06aa6c51aca945105c075139aed7e55a2 ARROW_S2N_TLS_BUILD_VERSION=v1.7.0 ARROW_S2N_TLS_BUILD_SHA256_CHECKSUM=a6e8228e238239bb3c17b1eda3ed702bcbb2eaebc792eac4d754cc5619b0ea06 -ARROW_THRIFT_BUILD_VERSION=0.22.0 -ARROW_THRIFT_BUILD_SHA256_CHECKSUM=794a0e455787960d9f27ab92c38e34da27e8deeda7a5db0e59dc64a00df8a1e5 +ARROW_THRIFT_BUILD_VERSION=0.24.0 +ARROW_THRIFT_BUILD_SHA256_CHECKSUM=e0fa5839a4c5c1d631b0931cf2c554ebbfa4e2fee3a9fb3ffd4f82ce4396c6e4 ARROW_UTF8PROC_BUILD_VERSION=v2.10.0 ARROW_UTF8PROC_BUILD_SHA256_CHECKSUM=6f4f1b639daa6dca9f80bc5db1233e9cbaa31a67790887106160b33ef743f136 # WIL (Windows Implementation Libraries) is required by Azure SDK on Windows for WinHTTP transport