This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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"