[gjs] build: Use -Bsymbolic-functions by default if available
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs] build: Use -Bsymbolic-functions by default if available
- Date: Sat, 1 Dec 2012 20:49:04 +0000 (UTC)
commit a5c220b45763b3f778674a088abe090f533728df
Author: Colin Walters <walters verbum org>
Date: Sat Dec 1 14:41:19 2012 -0500
build: Use -Bsymbolic-functions by default if available
While we have much larger performance problems right now, using
-Bsymbolic-functions to avoid internal PLT indirection is an easy win.
This is the same code that both GLib and GTK+ have.
https://bugzilla.gnome.org/show_bug.cgi?id=689455
Makefile-modules.am | 1 +
Makefile.am | 1 +
configure.ac | 23 +++++++++++++++++++++++
3 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/Makefile-modules.am b/Makefile-modules.am
index 47e7a51..b2ec685 100644
--- a/Makefile-modules.am
+++ b/Makefile-modules.am
@@ -28,6 +28,7 @@ JS_NATIVE_MODULE_LIBADD = \
libgjs.la \
$(GJS_LIBS)
JS_NATIVE_MODULE_LDFLAGS = \
+ $(EXTRA_LINK_FLAGS) \
-module -avoid-version -no-undefined -rdynamic
langNative_la_CFLAGS = \
diff --git a/Makefile.am b/Makefile.am
index 3231754..97ea9ca 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,6 +96,7 @@ libgjs_la_CPPFLAGS = \
libgjs_la_CFLAGS = \
$(AM_CFLAGS)
libgjs_la_LDFLAGS = \
+ $(EXTRA_LINK_FLAGS) \
-export-symbols-regex "^[^_]" -version-info 0:0:0 \
-no-undefined \
-rdynamic
diff --git a/configure.ac b/configure.ac
index b17d580..8cffc20 100644
--- a/configure.ac
+++ b/configure.ac
@@ -208,6 +208,29 @@ fi
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
+dnl
+dnl Check for -Bsymbolic-functions linker flag used to avoid
+dnl intra-library PLT jumps, if available.
+dnl
+AC_ARG_ENABLE(Bsymbolic,
+ [AS_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}"])
+
+if test "x${enable_Bsymbolic}" = "xyes"; then
+ EXTRA_LINK_FLAGS=-Wl,-Bsymbolic-functions
+fi
+
+AC_SUBST(EXTRA_LINK_FLAGS)
+
gjsjsdir="\${datadir}/gjs-1.0"
gjsnativedir="\${libdir}/gjs-1.0"
AC_SUBST([gjsjsdir])
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]