Commit d60a2d4d by Ian Lance Taylor Committed by Ian Lance Taylor

acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Set glibcxx_ld_is_gold.

	* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Set
	glibcxx_ld_is_gold.  Check for gold in --gc-sections test.
	(GLIBCXX_ENABLE_SYMVERS): Check for gold.
	* aclocal.m4, configure: Rebuild.

From-SVN: r133689
parent 3e08bbcf
2008-03-27 Ian Lance Taylor <iant@google.com>
* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Set
glibcxx_ld_is_gold. Check for gold in --gc-sections test.
(GLIBCXX_ENABLE_SYMVERS): Check for gold.
* aclocal.m4, configure: Rebuild.
2008-03-26 Benjamin Kosnik <bkoz@redhat.com> 2008-03-26 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/util/testsuite_abi.h: Remove symbol_objects, * testsuite/util/testsuite_abi.h: Remove symbol_objects,
......
...@@ -200,6 +200,7 @@ dnl OPT_LDFLAGS='-Wl,-O1' and '-z,relro' if possible ...@@ -200,6 +200,7 @@ dnl OPT_LDFLAGS='-Wl,-O1' and '-z,relro' if possible
dnl LD (as a side effect of testing) dnl LD (as a side effect of testing)
dnl Sets: dnl Sets:
dnl with_gnu_ld dnl with_gnu_ld
dnl glibcxx_ld_is_gold (set to "no" or "yes")
dnl glibcxx_gnu_ld_version (possibly) dnl glibcxx_gnu_ld_version (possibly)
dnl dnl
dnl The last will be a single integer, e.g., version 1.23.45.0.67.89 will dnl The last will be a single integer, e.g., version 1.23.45.0.67.89 will
...@@ -231,11 +232,15 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [ ...@@ -231,11 +232,15 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [
# Start by getting the version number. I think the libtool test already # Start by getting the version number. I think the libtool test already
# does some of this, but throws away the result. # does some of this, but throws away the result.
glibcxx_ld_is_gold=no
if test x"$with_gnu_ld" = x"yes"; then if test x"$with_gnu_ld" = x"yes"; then
AC_MSG_CHECKING([for ld version]) AC_MSG_CHECKING([for ld version])
changequote(,) changequote(,)
if $LD --version 2>/dev/null | grep 'GNU gold' >/dev/null 2>&1; then
glibcxx_ld_is_gold=yes
fi
ldver=`$LD --version 2>/dev/null | head -1 | \ ldver=`$LD --version 2>/dev/null | head -1 | \
sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/'` sed -e 's/GNU \(go\)\{0,1\}ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\4/'`
changequote([,]) changequote([,])
glibcxx_gnu_ld_version=`echo $ldver | \ glibcxx_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'`
...@@ -243,10 +248,19 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [ ...@@ -243,10 +248,19 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [
fi fi
# Set --gc-sections. # Set --gc-sections.
glibcxx_gcsections_min_ld=21602 glibcxx_have_gc_sections=no
if test x"$with_gnu_ld" = x"yes" && if test "$glibcxx_ld_is_gold" = "yes"; then
if $LD --help 2>/dev/null | grep gc-sections >/dev/null 2>&1; then
glibcxx_have_gc_sections=yes
fi
else
glibcxx_gcsections_min_ld=21602
if test x"$with_gnu_ld" = x"yes" &&
test $glibcxx_gnu_ld_version -gt $glibcxx_gcsections_min_ld ; then test $glibcxx_gnu_ld_version -gt $glibcxx_gcsections_min_ld ; then
glibcxx_have_gc_sections=yes
fi
fi
if test "$glibcxx_have_gc_sections" = "yes"; then
# Sufficiently young GNU ld it is! Joy and bunny rabbits! # Sufficiently young GNU ld it is! Joy and bunny rabbits!
# NB: This flag only works reliably after 2.16.1. Configure tests # NB: This flag only works reliably after 2.16.1. Configure tests
# for this are difficult, so hard wire a value that should work. # for this are difficult, so hard wire a value that should work.
...@@ -2453,6 +2467,8 @@ changequote([,])dnl ...@@ -2453,6 +2467,8 @@ changequote([,])dnl
AC_MSG_WARN([=== you are not using the GNU linker.]) AC_MSG_WARN([=== you are not using the GNU linker.])
AC_MSG_WARN([=== Symbol versioning will be disabled.]) AC_MSG_WARN([=== Symbol versioning will be disabled.])
enable_symvers=no enable_symvers=no
elif test $glibcxx_ld_is_gold = yes ; then
: All versions of gold support symbol versioning.
elif test $glibcxx_gnu_ld_version -lt $glibcxx_min_gnu_ld_version ; then elif test $glibcxx_gnu_ld_version -lt $glibcxx_min_gnu_ld_version ; then
# The right tools, the right setup, but too old. Fallbacks? # The right tools, the right setup, but too old. Fallbacks?
AC_MSG_WARN(=== Linker version $glibcxx_gnu_ld_version is too old for) AC_MSG_WARN(=== Linker version $glibcxx_gnu_ld_version is too old for)
......
...@@ -589,6 +589,7 @@ m4_include([../config/lib-link.m4]) ...@@ -589,6 +589,7 @@ m4_include([../config/lib-link.m4])
m4_include([../config/lib-prefix.m4]) m4_include([../config/lib-prefix.m4])
m4_include([../config/multi.m4]) m4_include([../config/multi.m4])
m4_include([../config/no-executables.m4]) m4_include([../config/no-executables.m4])
m4_include([../config/proginstall.m4])
m4_include([../config/unwind_ipinfo.m4]) m4_include([../config/unwind_ipinfo.m4])
m4_include([../libtool.m4]) m4_include([../libtool.m4])
m4_include([../ltoptions.m4]) m4_include([../ltoptions.m4])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment