From a02b0f7b05e37a8837f51c8bf38f823597749f19 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Sun, 26 Nov 2017 18:30:57 +0000 Subject: [PATCH] autotools: stop controlling symbol visibility with -export-symbols-regex Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT. This should result in consistent behaviour for the autotools and Meson builds. --- configure.ac | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index abdb3e0..6e52dbb 100644 --- a/configure.ac +++ b/configure.ac @@ -801,6 +801,16 @@ else fi AC_SUBST(DEPRECATED_CFLAGS) +VISIBILITY_CFLAGS="" +AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"]) +AC_SUBST(VISIBILITY_CFLAGS) + +VISIBILITY_CXXFLAGS="" +if test "x$HAVE_CXX" = "xyes"; then + AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"]) +fi +AC_SUBST(VISIBILITY_CXXFLAGS) + dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden dnl at make time with e.g. make ERROR_CFLAGS="" GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" @@ -820,8 +830,8 @@ AC_SUBST(GST_PLUGINS_BASE_CFLAGS) dnl FIXME: do we want to rename to GST_ALL_* ? dnl add GST_OPTION_CFLAGS, but overridable GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS" -GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS)" -GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS)" +GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)" +GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)" AC_SUBST(GST_CFLAGS) AC_SUBST(GST_CXXFLAGS) dnl add GCOV libs because libtool strips -fprofile-arcs -ftest-coverage @@ -840,12 +850,12 @@ dnl GST_LIB_LDFLAGS dnl linker flags shared by all libraries dnl LDFLAGS modifier defining exported symbols from built libraries dnl (export _gst_foo but not __gst_foo) -GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*" +GST_LIB_LDFLAGS="" AC_SUBST(GST_LIB_LDFLAGS) dnl this really should only contain flags, not libs - they get added before dnl whatevertarget_LIBS and -L flags here affect the rest of the linking -GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS" +GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS" AC_SUBST(GST_PLUGIN_LDFLAGS) dnl *** output files *** -- 2.7.4