This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Build shared libraries with -Bsymbolic-functions


With the new linker switches, -Bsymbolic-functions and
--dynamic-list-cpp-new, we can improve shared library
performance in gcc. This change will build libstdc++.so with
-Bsymbolic-functions and --dynamic-list-cpp-new. I can expand it
to other libraries.


H.J.
--
--- gcc/libstdc++-v3/acinclude.m4.symbolic	2007-01-09 16:43:09.000000000 -0800
+++ gcc/libstdc++-v3/acinclude.m4	2007-01-09 17:10:30.000000000 -0800
@@ -299,6 +299,22 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES]
     AC_MSG_RESULT($ac_ld_relro)
   fi
 
+  # Set --dynamic-list-cpp-new and -Bsymbolic-functions
+  # Note this is only for shared objects.
+  ac_ld_symbolic_functions=no
+  if test x"$with_gnu_ld" = x"yes"; then
+    AC_MSG_CHECKING([for ld that supports --dynamic-list-cpp-new and -Bsymbolic-functions])
+    cxx_symbolic_functions=`$LD -v --help 2>/dev/null | grep "dynamic-list-cpp-new"`
+    if test -n "$cxx_symbolic_functions"; then
+      cxx_symbolic_functions=`$LD -v --help 2>/dev/null | grep "Bsymbolic-functions"`
+    fi
+    if test -n "$cxx_symbolic_functions"; then
+      OPT_LDFLAGS="$OPT_LDFLAGS -Wl,--dynamic-list-cpp-new,-Bsymbolic-functions"
+      ac_ld_symbolic_functions=yes
+    fi
+    AC_MSG_RESULT($ac_ld_symbolic_functions)
+  fi
+
   # Set linker optimization flags.
   if test x"$with_gnu_ld" = x"yes"; then
     OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]