Skip to content

Commit 6ffefef

Browse files
committed
GH-47554: [C++] Fix Meson Parquet symbol visibility issues
1 parent d2dace9 commit 6ffefef

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

cpp/src/arrow/meson.build

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -488,8 +488,7 @@ arrow_lib = library(
488488
include_directories: arrow_includes,
489489
dependencies: arrow_deps,
490490
install: true,
491-
# TODO: re-enable symbol visibility
492-
#gnu_symbol_visibility: 'inlineshidden',
491+
gnu_symbol_visibility: 'inlineshidden',
493492
cpp_shared_args: ['-DARROW_EXPORTING'],
494493
)
495494

cpp/src/arrow/util/visibility.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
# endif
7979

8080
# define ARROW_FRIEND_EXPORT
81-
# define ARROW_TEMPLATE_EXPORT
81+
# define ARROW_TEMPLATE_EXPORT ARROW_EXPORT
8282

8383
// [[gnu::visibility("default")]] even when #included by a non-arrow source
8484
# define ARROW_FORCE_EXPORT [[gnu::visibility("default")]]

cpp/src/parquet/meson.build

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ endif
8989

9090
parquet_deps = [arrow_dep, rapidjson_dep, thrift_dep]
9191

92-
if needs_parquet_encryption or get_option('parquet_require_encryption') == 'auto'
92+
if needs_parquet_encryption or get_option('parquet_require_encryption').auto()
9393
openssl_dep = dependency('openssl', required: needs_parquet_encryption)
9494
else
9595
openssl_dep = disabler()
@@ -120,8 +120,7 @@ parquet_lib = library(
120120
'arrow-parquet',
121121
sources: parquet_srcs,
122122
dependencies: parquet_deps,
123-
# TODO: enable hidden visibility by default
124-
#gnu_symbol_visibility: 'inlineshidden',
123+
gnu_symbol_visibility: 'inlineshidden',
125124
)
126125

127126
parquet_dep = declare_dependency(link_with: parquet_lib)
@@ -271,6 +270,19 @@ endif
271270

272271
parquet_test_dep = [parquet_dep, arrow_test_dep, thrift_dep]
273272

273+
if get_option('default_library') != 'static'
274+
parquet_test_support_lib = static_library(
275+
'parquet-test-support',
276+
sources: files('../generated/parquet_types.cpp'),
277+
dependencies: [thrift_dep],
278+
include_directories: include_directories('..'),
279+
)
280+
parquet_test_support_dep = declare_dependency(
281+
link_with: [parquet_test_support_lib],
282+
)
283+
parquet_test_dep += [parquet_test_support_dep]
284+
endif
285+
274286
foreach key, val : parquet_tests
275287
test_name = 'parquet-@0@'.format(key)
276288
exc = executable(

0 commit comments

Comments
 (0)