From be8eb436b245416b55d3a114a8f9a882dc8c4572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 10 Aug 2017 13:32:43 +0100 Subject: [PATCH] meson: hide symbols by default unless explicitly exported --- libs/gst/check/libcheck/meson.build | 9 ++++++++- meson.build | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/libs/gst/check/libcheck/meson.build b/libs/gst/check/libcheck/meson.build index 6130764876..176049a85a 100644 --- a/libs/gst/check/libcheck/meson.build +++ b/libs/gst/check/libcheck/meson.build @@ -54,11 +54,18 @@ configure_file(input : 'check.h.in', internal_check_h_inc = include_directories('..') +# Must explicitly make symbols public if default visibility is hidden +if have_visibility_hidden + libcheck_visibility_args = ['-DCK_DLL_EXP=extern __attribute__ ((visibility ("default")))'] +else + libcheck_visibility_args = ['-DCK_DLL_EXP=extern'] +endif + libcheck = static_library('check', libcheck_files, include_directories : [configinc, internal_check_h_inc], dependencies : [rt_lib, mathlib], - c_args: gst_c_args + + c_args: gst_c_args + libcheck_visibility_args + # Don't want libcompat to think we don't have these and substitute # replacements since we don't check for or define these. See libcompat.h ['-DHAVE_VSNPRINTF', '-DHAVE_SNPRINTF', '-DHAVE_MALLOC', '-DHAVE_REALLOC'], diff --git a/meson.build b/meson.build index 4f728f027b..bfc3ae2806 100644 --- a/meson.build +++ b/meson.build @@ -48,6 +48,12 @@ elif cc.has_argument('-Wl,-Bsymbolic-functions') # FIXME: Add FATAL_WARNINGS from configure.ac endif +# Symbol visibility +have_visibility_hidden = cc.has_argument('-fvisibility=hidden') +if have_visibility_hidden + add_project_arguments('-fvisibility=hidden', language: 'c') +endif + cdata = configuration_data() cdata.set_quoted('GST_API_VERSION', apiversion) cdata.set_quoted('GST_DATADIR', join_paths(prefix, get_option('datadir')))