summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-12-21 12:32:32 +0100
committerSebastian Dröge <sebastian@centricular.com>2015-12-21 12:32:32 +0100
commitd774f18fb9602c9084a8fc8585d67c629eb4ef6d (patch)
tree09472ef2b202687fdbe034d14498f6cab44c777f
parentc589c6db058d257a32ba51b27a48920f4d185876 (diff)
configure: Use -Bsymbolic-functions if available
While this is more useful for libraries, some of our plugins with multiple files and some internal API can also benefit from this.
-rw-r--r--configure.ac18
1 files changed, 18 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 4b7e012ced..b3863bbb41 100644
--- a/configure.ac
+++ b/configure.ac
@@ -171,6 +171,21 @@ AC_SUBST(GSTPB_PREFIX)
dnl Needed by plugins that use g_module_*() API
PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
+dnl Check for -Bsymbolic-functions linker flag used to avoid
+dnl intra-library PLT jumps, if available.
+AC_ARG_ENABLE(Bsymbolic,
+ [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
+ [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
+ AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
+ LDFLAGS=-Wl,-Bsymbolic-functions
+ LIBS=
+ AC_TRY_LINK([], [return 0],
+ AC_MSG_RESULT(yes)
+ enable_Bsymbolic=yes,
+ AC_MSG_RESULT(no)
+ enable_Bsymbolic=no)
+ LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
+
dnl *** set variables based on configure arguments ***
dnl set license and copyright notice
@@ -432,6 +447,9 @@ AC_SUBST(GST_LIBS)
dnl LDFLAGS 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_ALL_LDFLAGS="-no-undefined"
+if test "x${enable_Bsymbolic}" = "xyes"; then
+ GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
+fi
AC_SUBST(GST_ALL_LDFLAGS)
dnl this really should only contain flags, not libs - they get added before