2007-01-14 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 14 Jan 2007 15:39:41 +0000 (15:39 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 14 Jan 2007 15:39:41 +0000 (15:39 +0000)
* ld-symbolic.m4: New.

config/ChangeLog
config/ld-symbolic.m4 [new file with mode: 0644]

index 225e57629bad59145fc28b054c4d4f71a6405ef9..bf596163c93f61c65a62b101c69a89f17a94e86c 100644 (file)
@@ -1,7 +1,11 @@
+2007-01-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ld-symbolic.m4: New.
+
 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
 
-        * warnings.m4: Use m4_expand_once to clear the AC_SUBST'ed variable.
-        (ACX_PROG_CC_WARNINGS_ARE_ERRORS): Fix typo.  Add optional 2nd argument.
+       * warnings.m4: Use m4_expand_once to clear the AC_SUBST'ed variable.
+       (ACX_PROG_CC_WARNINGS_ARE_ERRORS): Fix typo.  Add optional 2nd argument.
 
 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
 
diff --git a/config/ld-symbolic.m4 b/config/ld-symbolic.m4
new file mode 100644 (file)
index 0000000..16d64f9
--- /dev/null
@@ -0,0 +1,45 @@
+dnl Copyright (C) 2007 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl Set SYMBOLIC_LDFLAGS to -Bsymbolic-functions for GNU linker if it
+dnl is supported.
+AC_DEFUN([ACX_PROG_LD_GNU_SYMBOLIC],
+[AC_CACHE_CHECK([if the GNU linker ($LD) supports -Bsymbolic-functions],
+acl_cv_prog_gnu_ld_symbolic, [
+acl_cv_prog_gnu_ld_symbolic=no
+AC_REQUIRE([AC_LIB_PROG_LD_GNU])
+if test x"$with_gnu_ld" = x"yes"; then
+  if $LD --help 2>&1 </dev/null | grep Bsymbolic-functions 1>&5; then
+    acl_cv_prog_gnu_ld_symbolic=yes
+  fi
+fi])
+if test x"$acl_cv_prog_gnu_ld_symbolic" = x"yes"; then
+  SYMBOLIC_LDFLAGS="-Wl,-Bsymbolic-functions"
+else
+  SYMBOLIC_LDFLAGS=''
+fi
+])
+
+dnl Set DYNAMIC_LIST_CPP_NEW_LDFLAGS to --dynamic-list-cpp-new for GNU
+dnl linker if it is supported.
+AC_DEFUN([ACX_PROG_LD_GNU_DYNAMIC_LIST_CPP_NEW],
+[AC_CACHE_CHECK([if the GNU linker ($LD) supports --dynamic-list-cpp-new],
+acl_cv_prog_gnu_ld_dynamic_list_cpp_new, [
+acl_cv_prog_gnu_ld_dynamic_list_cpp_new=no
+AC_REQUIRE([ACX_PROG_LD_GNU_SYMBOLIC])
+if test x"$with_gnu_ld" = x"yes" -a \
+       x"$acl_cv_prog_gnu_ld_symbolic" = x"yes"; then
+  if $LD --help 2>&1 </dev/null | grep dynamic-list-cpp-new 1>&5; then
+    acl_cv_prog_gnu_ld_dynamic_list_cpp_new=yes
+  fi
+fi])
+if test x"$acl_cv_prog_gnu_ld_dynamic_list_cpp_new" = x"yes"; then
+   DYNAMIC_LIST_CPP_NEW_LDFLAGS="$SYMBOLIC_LDFLAGS -Wl,--dynamic-list-cpp-new"
+else
+   DYNAMIC_LIST_CPP_NEW_LDFLAGS=''
+fi
+])