This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 3c460f7c4e GH-47283: [C++] Fix flight visibility issue in Meson
configuration (#47298)
3c460f7c4e is described below
commit 3c460f7c4e29309d8bdd6411a4adffc976baf0c6
Author: William Ayd <[email protected]>
AuthorDate: Mon Aug 11 21:55:59 2025 -0400
GH-47283: [C++] Fix flight visibility issue in Meson configuration (#47298)
### Rationale for this change
The meson configuration is missing some symbols for flight that appear to
come from the testing library.
### What changes are included in this PR?
Updates to the Meson configuration
### Are these changes tested?
Yes
### Are there any user-facing changes?
No
* GitHub Issue: #47283
Authored-by: Will Ayd <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
cpp/src/arrow/flight/meson.build | 5 +--
cpp/src/arrow/integration/meson.build | 3 +-
cpp/src/arrow/meson.build | 42 ++++++++++++++++------
cpp/src/arrow/util/meson.build | 3 +-
cpp/subprojects/google-benchmark.wrap | 10 +++---
.../{google-benchmark.wrap => re2.wrap} | 21 ++++++-----
6 files changed, 51 insertions(+), 33 deletions(-)
diff --git a/cpp/src/arrow/flight/meson.build b/cpp/src/arrow/flight/meson.build
index 85df8e61cb..ca0289c77f 100644
--- a/cpp/src/arrow/flight/meson.build
+++ b/cpp/src/arrow/flight/meson.build
@@ -135,6 +135,7 @@ if needs_testing
'test_util.cc',
],
dependencies: [arrow_test_dep, arrow_flight_dep, thread_dep],
+ gnu_symbol_visibility: 'hidden',
)
arrow_flight_test_dep = declare_dependency(
@@ -194,12 +195,12 @@ if needs_benchmarks
executable(
'arrow-flight-perf-server',
sources: ['perf_server.cc'] + flight_proto_files,
- dependencies: flight_test_dep_no_main,
+ dependencies: [flight_test_dep_no_main, arrow_testing_dep],
)
executable(
'arrow-flight-benchmark',
sources: ['flight_benchmark.cc'] + flight_proto_files,
- dependencies: flight_test_dep_no_main,
+ dependencies: [flight_test_dep_no_main, arrow_testing_dep],
)
endif
diff --git a/cpp/src/arrow/integration/meson.build
b/cpp/src/arrow/integration/meson.build
index f63c6e0745..edc9fdf724 100644
--- a/cpp/src/arrow/integration/meson.build
+++ b/cpp/src/arrow/integration/meson.build
@@ -20,8 +20,7 @@ install_headers(['json_integration.h'])
exc = executable(
'arrow-json-integration-test',
sources: ['json_integration_test.cc'],
- dependencies: [arrow_dep, rapidjson_dep, gflags_dep, gtest_dep],
- link_with: [arrow_test_lib],
+ dependencies: [arrow_test_dep_no_main, rapidjson_dep, gflags_dep],
)
if needs_tests
diff --git a/cpp/src/arrow/meson.build b/cpp/src/arrow/meson.build
index c1efd9df76..f19bd7a1be 100644
--- a/cpp/src/arrow/meson.build
+++ b/cpp/src/arrow/meson.build
@@ -569,20 +569,36 @@ else
gmock_dep = disabler()
endif
-arrow_test_lib = static_library(
- 'arrow_testing',
- sources: arrow_testing_srcs,
- dependencies: [arrow_dep, filesystem_dep, gmock_dep, gtest_main_dep],
-)
+if needs_testing
+ arrow_testing_lib = static_library(
+ 'arrow_testing',
+ sources: arrow_testing_srcs,
+ dependencies: [arrow_dep, filesystem_dep, gmock_dep, gtest_dep],
+ )
+
+ arrow_testing_dep = declare_dependency(link_with: [arrow_testing_lib])
+else
+ arrow_testing_dep = disabler()
+endif
if needs_tests
arrow_test_dep = declare_dependency(
- link_with: [arrow_test_lib],
- dependencies: [arrow_dep, filesystem_dep, gmock_dep, gtest_main_dep],
+ dependencies: [
+ arrow_dep,
+ arrow_testing_dep,
+ filesystem_dep,
+ gmock_dep,
+ gtest_main_dep,
+ ],
)
arrow_test_dep_no_main = declare_dependency(
- link_with: [arrow_test_lib],
- dependencies: [arrow_dep, filesystem_dep, gmock_dep, gtest_dep],
+ dependencies: [
+ arrow_dep,
+ arrow_testing_dep,
+ filesystem_dep,
+ gmock_dep,
+ gtest_dep,
+ ],
)
else
arrow_test_dep = disabler()
@@ -655,8 +671,12 @@ if needs_benchmarks
)
arrow_benchmark_dep = declare_dependency(
- link_with: [arrow_test_lib],
- dependencies: [arrow_dep, benchmark_main_dep, gtest_dep],
+ dependencies: [
+ arrow_dep,
+ arrow_testing_dep,
+ benchmark_main_dep,
+ gtest_dep,
+ ],
)
else
arrow_benchmark_dep = disabler()
diff --git a/cpp/src/arrow/util/meson.build b/cpp/src/arrow/util/meson.build
index b6f674b2b1..99217a28da 100644
--- a/cpp/src/arrow/util/meson.build
+++ b/cpp/src/arrow/util/meson.build
@@ -236,8 +236,7 @@ endif
exc = executable(
'arrow-utility-test',
sources: utility_test_srcs,
- dependencies: [arrow_dep, filesystem_dep, gtest_dep, gmock_dep],
- link_with: [arrow_test_lib],
+ dependencies: arrow_test_dep_no_main,
implicit_include_directories: false,
)
test('arrow-utility-test', exc)
diff --git a/cpp/subprojects/google-benchmark.wrap
b/cpp/subprojects/google-benchmark.wrap
index 3b6704639e..10b8064b45 100644
--- a/cpp/subprojects/google-benchmark.wrap
+++ b/cpp/subprojects/google-benchmark.wrap
@@ -20,11 +20,11 @@ directory = benchmark-1.8.4
source_url =
https://github.com/google/benchmark/archive/refs/tags/v1.8.4.tar.gz
source_filename = benchmark-1.8.4.tar.gz
source_hash = 3e7059b6b11fb1bbe28e33e02519398ca94c1818874ebed18e504dc6f709be45
-patch_filename = google-benchmark_1.8.4-1_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/google-benchmark_1.8.4-1/get_patch
-patch_hash = 77cdae534fe12b6783c1267de3673d3462b229054519034710d581b419e73cca
-source_fallback_url =
https://github.com/mesonbuild/wrapdb/releases/download/google-benchmark_1.8.4-1/benchmark-1.8.4.tar.gz
-wrapdb_version = 1.8.4-1
+patch_filename = google-benchmark_1.8.4-3_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/google-benchmark_1.8.4-3/get_patch
+patch_hash = 657aee778629725cf9104bbfc32dba0c9c6825d5202e600ad81c7251ae684468
+source_fallback_url =
https://github.com/mesonbuild/wrapdb/releases/download/google-benchmark_1.8.4-3/benchmark-1.8.4.tar.gz
+wrapdb_version = 1.8.4-3
[provide]
benchmark = google_benchmark_dep
diff --git a/cpp/subprojects/google-benchmark.wrap b/cpp/subprojects/re2.wrap
similarity index 59%
copy from cpp/subprojects/google-benchmark.wrap
copy to cpp/subprojects/re2.wrap
index 3b6704639e..9451671a70 100644
--- a/cpp/subprojects/google-benchmark.wrap
+++ b/cpp/subprojects/re2.wrap
@@ -16,16 +16,15 @@
# under the License.
[wrap-file]
-directory = benchmark-1.8.4
-source_url =
https://github.com/google/benchmark/archive/refs/tags/v1.8.4.tar.gz
-source_filename = benchmark-1.8.4.tar.gz
-source_hash = 3e7059b6b11fb1bbe28e33e02519398ca94c1818874ebed18e504dc6f709be45
-patch_filename = google-benchmark_1.8.4-1_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/google-benchmark_1.8.4-1/get_patch
-patch_hash = 77cdae534fe12b6783c1267de3673d3462b229054519034710d581b419e73cca
-source_fallback_url =
https://github.com/mesonbuild/wrapdb/releases/download/google-benchmark_1.8.4-1/benchmark-1.8.4.tar.gz
-wrapdb_version = 1.8.4-1
+directory = re2-2023-03-01
+source_url = https://github.com/google/re2/archive/2023-03-01.tar.gz
+source_filename = re2-2023-03-01.tar.gz
+source_hash = 7a9a4824958586980926a300b4717202485c4b4115ac031822e29aa4ef207e48
+patch_filename = re2_20230301-3_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/re2_20230301-3/get_patch
+patch_hash = 9d5036080272a886fee0dec9ea415129ae57ee6bad4b56991b29ed355c0d97e3
+source_fallback_url =
https://github.com/mesonbuild/wrapdb/releases/download/re2_20230301-3/re2-2023-03-01.tar.gz
+wrapdb_version = 20230301-3
[provide]
-benchmark = google_benchmark_dep
-benchmark-main = google_benchmark_main_dep
+re2 = re2_dep