From: Ian Lance Taylor Date: Fri, 28 Mar 2008 17:32:05 +0000 (+0000) Subject: acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Set glibcxx_ld_is_gold. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d60a2d4d2fdc2f8218c0ef7fcee4aea63953e2e8;p=gcc.git 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 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4f2e2bd2c29..15e8e491811 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2008-03-27 Ian Lance Taylor + + * 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 * testsuite/util/testsuite_abi.h: Remove symbol_objects, diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 45c8ffd765b..92c70b29079 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -200,6 +200,7 @@ dnl OPT_LDFLAGS='-Wl,-O1' and '-z,relro' if possible dnl LD (as a side effect of testing) dnl Sets: dnl with_gnu_ld +dnl glibcxx_ld_is_gold (set to "no" or "yes") dnl glibcxx_gnu_ld_version (possibly) dnl 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], [ # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then AC_MSG_CHECKING([for ld version]) 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 | \ - 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([,]) glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` @@ -243,10 +248,19 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [ fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -2453,6 +2467,8 @@ changequote([,])dnl AC_MSG_WARN([=== you are not using the GNU linker.]) AC_MSG_WARN([=== Symbol versioning will be disabled.]) 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 # The right tools, the right setup, but too old. Fallbacks? AC_MSG_WARN(=== Linker version $glibcxx_gnu_ld_version is too old for) diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4 index baabee6eb6a..9996d14fc96 100644 --- a/libstdc++-v3/aclocal.m4 +++ b/libstdc++-v3/aclocal.m4 @@ -589,6 +589,7 @@ m4_include([../config/lib-link.m4]) m4_include([../config/lib-prefix.m4]) m4_include([../config/multi.m4]) m4_include([../config/no-executables.m4]) +m4_include([../config/proginstall.m4]) m4_include([../config/unwind_ipinfo.m4]) m4_include([../libtool.m4]) m4_include([../ltoptions.m4]) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index a2eb4ce4c97..9a6ec5256bb 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -1769,6 +1769,7 @@ am__api_version="1.9" # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then @@ -1802,8 +1803,18 @@ case $as_dir/ in # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done @@ -1812,15 +1823,16 @@ case $as_dir/ in esac done +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is - # removed, or if the path is relative. + # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi @@ -4645,13 +4657,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:4648: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4660: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4651: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4663: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4654: output\"" >&5) + (eval echo "\"\$as_me:4666: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5695,7 +5707,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5698 "configure"' > conftest.$ac_ext + echo '#line 5710 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7157,11 +7169,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7160: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7172: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7164: \$? = $ac_status" >&5 + echo "$as_me:7176: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7479,11 +7491,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7482: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7494: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7486: \$? = $ac_status" >&5 + echo "$as_me:7498: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7584,11 +7596,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7587: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7599: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7591: \$? = $ac_status" >&5 + echo "$as_me:7603: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -7639,11 +7651,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7642: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7654: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7646: \$? = $ac_status" >&5 + echo "$as_me:7658: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10491,7 +10503,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10494 "configure" +#line 10506 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10591,7 +10603,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10594 "configure" +#line 10606 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12629,11 +12641,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12632: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12644: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:12636: \$? = $ac_status" >&5 + echo "$as_me:12648: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12728,11 +12740,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12731: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12743: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12735: \$? = $ac_status" >&5 + echo "$as_me:12747: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12780,11 +12792,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12783: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12795: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12787: \$? = $ac_status" >&5 + echo "$as_me:12799: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -13829,7 +13841,7 @@ fi; # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 13832 "configure" +#line 13844 "configure" struct S { ~S(); }; void bar(); void foo() @@ -17976,7 +17988,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 17979 "configure" +#line 17991 "configure" int main() { // NB: _Atomic_word not necessarily int. @@ -18446,12 +18458,16 @@ with_gnu_ld=$lt_cv_prog_gnu_ld # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -18460,10 +18476,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -43171,12 +43196,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -43185,10 +43214,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -85562,12 +85600,16 @@ done # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -85576,10 +85618,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -86578,12 +86629,16 @@ done # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -86592,10 +86647,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -87566,12 +87630,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -87580,10 +87648,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -110053,12 +110130,16 @@ _ACEOF # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -110067,10 +110148,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -110898,12 +110988,16 @@ done # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -110912,10 +111006,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -111792,12 +111895,16 @@ done # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -111806,10 +111913,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -113078,12 +113194,16 @@ echo "${ECHO_T}$glibcxx_cv_WRITEV" >&6 # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -113092,10 +113212,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -113814,12 +113943,16 @@ _ACEOF # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -113828,10 +113961,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -114315,12 +114457,16 @@ done # Start by getting the version number. I think the libtool test already # does some of this, but throws away the result. + glibcxx_ld_is_gold=no if test x"$with_gnu_ld" = x"yes"; then echo "$as_me:$LINENO: checking for ld version" >&5 echo $ECHO_N "checking for ld version... $ECHO_C" >&6 + 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 | \ - 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/'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -114329,10 +114475,19 @@ echo "${ECHO_T}$glibcxx_gnu_ld_version" >&6 fi # Set --gc-sections. - glibcxx_gcsections_min_ld=21602 - if test x"$with_gnu_ld" = x"yes" && + glibcxx_have_gc_sections=no + 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 - + 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! # NB: This flag only works reliably after 2.16.1. Configure tests # for this are difficult, so hard wire a value that should work. @@ -115829,6 +115984,8 @@ echo "$as_me: WARNING: === you are not using the GNU linker." >&2;} { echo "$as_me:$LINENO: WARNING: === Symbol versioning will be disabled." >&5 echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;} 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 # The right tools, the right setup, but too old. Fallbacks? { echo "$as_me:$LINENO: WARNING: === Linker version $glibcxx_gnu_ld_version is too old for" >&5