configure: use the -Bsymbolic-functions linker flag if supported
authorStefan Kost <ensonic@users.sf.net>
Wed, 15 Dec 2010 10:21:05 +0000 (12:21 +0200)
committerStefan Kost <ensonic@users.sf.net>
Wed, 15 Dec 2010 10:23:15 +0000 (12:23 +0200)
This feature turns intra library calls into direct function calls and thus makes
them a little faster. The downside is that this causes problems for e.g.
LD_PRELOAD based tools. Thus add a configure option to turn it off.

configure.ac

index 91553b6..b1df1c6 100644 (file)
@@ -337,6 +337,22 @@ AC_COMPILE_IFELSE(
 ])
 AM_CONDITIONAL(HAVE_LINUX_JOYSTICK_HEADERS, test "x$HAVE_LINUX_JOYSTICK_HEADERS" = "xyes")
 
+dnl Check for -Bsymbolic-functions linker flag used to avoid
+dnl intra-library PLT jumps, if available.
+AC_ARG_ENABLE(Bsymbolic,
+              [AC_HELP_STRING([--disable-Bsymbolic],
+                              [avoid linking with -Bsymbolic])],,
+              [SAVED_LDFLAGS="${LDFLAGS}"
+               AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
+               LDFLAGS=-Wl,-Bsymbolic-functions
+               AC_TRY_LINK([], [int main (void) { return 0; }],
+                           AC_MSG_RESULT(yes)
+                           enable_Bsymbolic=yes,
+                           AC_MSG_RESULT(no)
+                           enable_Bsymbolic=no)
+               LDFLAGS="${SAVED_LDFLAGS}"])
+
+
 dnl *** set variables based on configure arguments ***
 
 dnl set license and copyright notice
@@ -870,6 +886,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 GST_LIB_LDFLAGS