diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-09 17:32:54 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-09 17:32:54 +0000 |
commit | dfbfdd908460fbd5b6e93f435707cf460b5aaf0e (patch) | |
tree | 577933b08daff68b3b380007c7fe3cd5e8436944 /gcc/configure.ac | |
parent | 9232c3b6259f0a56cca9ada3b978ab7d0a0debda (diff) | |
download | gcc-dfbfdd908460fbd5b6e93f435707cf460b5aaf0e.tar.gz |
* configure.ac: Determine Sun ld version numbers.
(comdat_group): Restrict GNU ld version checks to gld.
(comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
(enable_comdat): Support --enable-comdat.
* configure: Regenerate.
* doc/install.texi (Configuration): Document --enable-comdat.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158172 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r-- | gcc/configure.ac | 50 |
1 files changed, 47 insertions, 3 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac index ea1a0405e90..abf03c5b31f 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2142,6 +2142,27 @@ if test $in_tree_ld != yes ; then ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` + else + case "${target}" in + *-*-solaris2*) + # + # Solaris 2 ld -V output looks like this for a regular version: + # + # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1699 + # + # but test versions add stuff at the end: + # + # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10 + # + ld_ver=`$gcc_cv_ld -V 2>&1` + if echo "$ld_ver" | grep 'Solaris Link Editors' > /dev/null; then + ld_vers=`echo $ld_ver | sed -n \ + -e 's,^.*: 5\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\1,p'` + ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` + ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` + fi + ;; + esac fi fi changequote([,])dnl @@ -2462,7 +2483,7 @@ elif test $in_tree_ld = yes ; then && test $in_tree_ld_is_elf = yes; then comdat_group=yes fi -elif test x"$ld_vers" != x; then +elif echo "$ld_ver" | grep GNU > /dev/null; then comdat_group=yes if test 0"$ld_date" -lt 20050308; then if test -n "$ld_date"; then @@ -2475,9 +2496,32 @@ elif test x"$ld_vers" != x; then fi fi else - # assume linkers other than GNU ld don't support COMDAT group - comdat_group=no +changequote(,)dnl + case "${target}" in + *-*-solaris2.1[1-9]*) + # Sun ld has COMDAT group support since Solaris 9, but it doesn't + # interoperate with GNU as until Solaris 11 build 130, i.e. ld + # version 1.688. + # + # FIXME: Maybe need to refine later when COMDAT group support with + # Sun as is implemented. + if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 1688; then + comdat_group=yes + else + comdat_group=no + fi + ;; + *) + # Assume linkers other than GNU ld don't support COMDAT group. + comdat_group=no + ;; + esac +changequote([,])dnl fi +# Allow overriding the automatic COMDAT group tests above. +AC_ARG_ENABLE(comdat, + [AS_HELP_STRING([--enable-comdat], [enable COMDAT group support])], + [comdat_group="$enable_comdat"]) if test $comdat_group = no; then gcc_cv_as_comdat_group=no gcc_cv_as_comdat_group_percent=no |