summaryrefslogtreecommitdiff
path: root/gcc/configure.ac
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-09 17:32:54 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-09 17:32:54 +0000
commitdfbfdd908460fbd5b6e93f435707cf460b5aaf0e (patch)
tree577933b08daff68b3b380007c7fe3cd5e8436944 /gcc/configure.ac
parent9232c3b6259f0a56cca9ada3b978ab7d0a0debda (diff)
downloadgcc-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.ac50
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