From 56cf785912d39bf6f529e6eaace998788fd250b2 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Tue, 14 May 2013 09:28:17 +0000 Subject: [PATCH] Fix Solaris --as-needed/-z ignore detection (PR target/57261) PR target/57261 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11 and Solaris 11+/x86 with gld. * configure: Regenerate. From-SVN: r198867 --- gcc/ChangeLog | 7 +++++++ gcc/configure | 17 +++++++++++++++++ gcc/configure.ac | 17 +++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a751b29..533f21a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2013-05-14 Rainer Orth + + PR target/57261 + * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11 + and Solaris 11+/x86 with gld. + * configure: Regenerate. + 2013-05-14 Jakub Jelinek * expmed.c (expand_shift_1): Canonicalize rotates by diff --git a/gcc/configure b/gcc/configure index def377f..39e911c 100755 --- a/gcc/configure +++ b/gcc/configure @@ -26579,6 +26579,23 @@ elif test x$gcc_cv_ld != x; then esac fi fi +# --as-needed/-z ignore can only be used if libgcc_s.so.1 uses +# dl_iterate_phdr, i.e. since Solaris 11. +case "$target" in + *-*-solaris2.1[1-9]*) + case "$target" in + i?86-*-* | x86_64-*-*) + if echo "$ld_ver" | grep GNU > /dev/null; then + # Doesn't work with gld on Solaris/x86 due to PR ld/12320. + gcc_cv_ld_as_needed=no + fi + ;; + esac + ;; + *-*-solaris2*) + gcc_cv_ld_as_needed=no + ;; +esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_as_needed" >&5 diff --git a/gcc/configure.ac b/gcc/configure.ac index effae81..a6cdf24 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -4560,6 +4560,23 @@ elif test x$gcc_cv_ld != x; then esac fi fi +# --as-needed/-z ignore can only be used if libgcc_s.so.1 uses +# dl_iterate_phdr, i.e. since Solaris 11. +case "$target" in + *-*-solaris2.1[[1-9]]*) + case "$target" in + i?86-*-* | x86_64-*-*) + if echo "$ld_ver" | grep GNU > /dev/null; then + # Doesn't work with gld on Solaris/x86 due to PR ld/12320. + gcc_cv_ld_as_needed=no + fi + ;; + esac + ;; + *-*-solaris2*) + gcc_cv_ld_as_needed=no + ;; +esac ]) if test x"$gcc_cv_ld_as_needed" = xyes; then AC_DEFINE(HAVE_LD_AS_NEEDED, 1, -- 2.7.4