From: Rainer Orth Date: Thu, 22 Jun 2017 06:54:04 +0000 (+0000) Subject: Support --sysroot with Solaris ld X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8dc877ebc405937c7026f8fa7632b23e1f6ebccb;p=gcc.git Support --sysroot with Solaris ld * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for $gcc_cv_ld --help output. (gcc_cv_ld_demangle): Likewise. (gcc_cv_ld_eh_frame_hdr): Likewise. (gcc_cv_ld_pie): Likewise. (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld. (gcc_cv_ld_buildid): Likewise. (gcc_cv_ld_sysroot): Likewise. (ld_bndplt_support): Likewise. (ld_pushpopstate_support): Likewise. * configure: Regenerate. * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define. From-SVN: r249496 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d40f0c8c324..c056ae4609b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2017-06-22 Rainer Orth + + * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for + $gcc_cv_ld --help output. + (gcc_cv_ld_demangle): Likewise. + (gcc_cv_ld_eh_frame_hdr): Likewise. + (gcc_cv_ld_pie): Likewise. + (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld. + (gcc_cv_ld_buildid): Likewise. + (gcc_cv_ld_sysroot): Likewise. + (ld_bndplt_support): Likewise. + (ld_pushpopstate_support): Likewise. + * configure: Regenerate. + * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define. + 2017-06-21 Jakub Jelinek PR target/81151 diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h index 1ae7f9f0e01..b8398d082a9 100644 --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -330,6 +330,11 @@ along with GCC; see the file COPYING3. If not see #define RDYNAMIC_SPEC "--export-dynamic" #endif +#ifndef USE_GLD +/* Prefer native form with Solaris ld. */ +#define SYSROOT_SPEC "-z sysroot=%R" +#endif + #ifndef USE_GLD /* With Sun ld, use mapfile to enforce direct binding to libgcc_s unwinder. */ #define LINK_LIBGCC_MAPFILE_SPEC \ diff --git a/gcc/configure b/gcc/configure index cc542ac4da5..317517c1ab0 100755 --- a/gcc/configure +++ b/gcc/configure @@ -24372,8 +24372,8 @@ if test $in_tree_ld = yes ; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports -Bstatic/-Bdynamic option - if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \ - && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- -Bstatic > /dev/null \ + && $gcc_cv_ld --help 2>&1 | grep -- -Bdynamic > /dev/null; then gcc_cv_ld_static_dynamic=yes else case "$target" in @@ -24426,7 +24426,7 @@ $as_echo_n "checking linker --demangle support... " >&6; } fi elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then # Check if the GNU linker supports --demangle option - if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep no-demangle > /dev/null; then gcc_cv_ld_demangle=yes fi fi @@ -28058,7 +28058,7 @@ if test $in_tree_ld = yes ; then elif test x$gcc_cv_ld != x; then if echo "$ld_ver" | grep GNU > /dev/null; then # Check if linker supports --eh-frame-hdr option - if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep eh-frame-hdr > /dev/null; then gcc_cv_ld_eh_frame_hdr=yes fi else @@ -28136,7 +28136,7 @@ if test $in_tree_ld = yes ; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports -pie option - if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- -pie > /dev/null; then gcc_cv_ld_pie=yes case "$target" in *-*-solaris2*) @@ -28493,19 +28493,19 @@ if test $in_tree_ld = yes ; then gcc_cv_ld_as_needed=yes fi elif test x$gcc_cv_ld != x; then - # Check if linker supports --as-needed and --no-as-needed options - if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then - gcc_cv_ld_as_needed=yes - else - case "$target" in - # Solaris 2 ld always supports -z ignore/-z record. - *-*-solaris2*) - gcc_cv_ld_as_needed=yes - gcc_cv_ld_as_needed_option="-z ignore" - gcc_cv_ld_no_as_needed_option="-z record" - ;; - esac - fi + # Check if linker supports --as-needed and --no-as-needed options + if $gcc_cv_ld --help 2>&1 | grep as-needed > /dev/null; then + gcc_cv_ld_as_needed=yes + fi + case "$target:$gnu_ld" in + *-*-solaris2*:no) + # Solaris 2 ld always supports -z ignore/-z record. Prefer the native + # forms. + gcc_cv_ld_as_needed=yes + gcc_cv_ld_as_needed_option="-z ignore" + gcc_cv_ld_no_as_needed_option="-z record" + ;; + esac fi # --as-needed/-z ignore can only be used if libgcc_s.so.1 uses # dl_iterate_phdr, i.e. since Solaris 11. @@ -28808,7 +28808,7 @@ else gcc_cv_ld_buildid=yes fi elif test x$gcc_cv_ld != x; then - if $gcc_cv_ld --help 2>/dev/null | grep build-id > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep build-id > /dev/null; then gcc_cv_ld_buildid=yes fi fi @@ -28881,7 +28881,7 @@ else gcc_cv_ld_sysroot=yes fi elif test x$gcc_cv_ld != x; then - if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep sysroot > /dev/null; then gcc_cv_ld_sysroot=yes fi fi @@ -29857,7 +29857,7 @@ if test x"$ld_is_gold" = xno; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports -a bndplt option - if $gcc_cv_ld --help 2>/dev/null | grep -- '-z bndplt' > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- '-z bndplt' > /dev/null; then ld_bndplt_support=yes fi fi @@ -29881,7 +29881,7 @@ if test x"$ld_is_gold" = xno; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports --push-state/--pop-state options - if $gcc_cv_ld --help 2>/dev/null | grep -- '--push-state' > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- '--push-state' > /dev/null; then ld_pushpopstate_support=yes fi fi diff --git a/gcc/configure.ac b/gcc/configure.ac index b54f797b4b9..e1b03a9ac96 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -3569,8 +3569,8 @@ if test $in_tree_ld = yes ; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports -Bstatic/-Bdynamic option - if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \ - && $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- -Bstatic > /dev/null \ + && $gcc_cv_ld --help 2>&1 | grep -- -Bdynamic > /dev/null; then gcc_cv_ld_static_dynamic=yes else case "$target" in @@ -3614,7 +3614,7 @@ if test x"$demangler_in_ld" = xyes; then fi elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then # Check if the GNU linker supports --demangle option - if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep no-demangle > /dev/null; then gcc_cv_ld_demangle=yes fi fi @@ -4985,7 +4985,7 @@ if test $in_tree_ld = yes ; then elif test x$gcc_cv_ld != x; then if echo "$ld_ver" | grep GNU > /dev/null; then # Check if linker supports --eh-frame-hdr option - if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep eh-frame-hdr > /dev/null; then gcc_cv_ld_eh_frame_hdr=yes fi else @@ -5056,7 +5056,7 @@ if test $in_tree_ld = yes ; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports -pie option - if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- -pie > /dev/null; then gcc_cv_ld_pie=yes case "$target" in *-*-solaris2*) @@ -5382,19 +5382,19 @@ if test $in_tree_ld = yes ; then gcc_cv_ld_as_needed=yes fi elif test x$gcc_cv_ld != x; then - # Check if linker supports --as-needed and --no-as-needed options - if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then - gcc_cv_ld_as_needed=yes - else - case "$target" in - # Solaris 2 ld always supports -z ignore/-z record. - *-*-solaris2*) - gcc_cv_ld_as_needed=yes - gcc_cv_ld_as_needed_option="-z ignore" - gcc_cv_ld_no_as_needed_option="-z record" - ;; - esac - fi + # Check if linker supports --as-needed and --no-as-needed options + if $gcc_cv_ld --help 2>&1 | grep as-needed > /dev/null; then + gcc_cv_ld_as_needed=yes + fi + case "$target:$gnu_ld" in + *-*-solaris2*:no) + # Solaris 2 ld always supports -z ignore/-z record. Prefer the native + # forms. + gcc_cv_ld_as_needed=yes + gcc_cv_ld_as_needed_option="-z ignore" + gcc_cv_ld_no_as_needed_option="-z record" + ;; + esac fi # --as-needed/-z ignore can only be used if libgcc_s.so.1 uses # dl_iterate_phdr, i.e. since Solaris 11. @@ -5634,7 +5634,7 @@ AC_CACHE_CHECK(linker --build-id support, gcc_cv_ld_buildid=yes fi elif test x$gcc_cv_ld != x; then - if $gcc_cv_ld --help 2>/dev/null | grep build-id > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep build-id > /dev/null; then gcc_cv_ld_buildid=yes fi fi]) @@ -5689,7 +5689,7 @@ AC_CACHE_CHECK(linker --sysroot support, gcc_cv_ld_sysroot=yes fi elif test x$gcc_cv_ld != x; then - if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep sysroot > /dev/null; then gcc_cv_ld_sysroot=yes fi fi]) @@ -6363,7 +6363,7 @@ if test x"$ld_is_gold" = xno; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports -a bndplt option - if $gcc_cv_ld --help 2>/dev/null | grep -- '-z bndplt' > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- '-z bndplt' > /dev/null; then ld_bndplt_support=yes fi fi @@ -6384,7 +6384,7 @@ if test x"$ld_is_gold" = xno; then fi elif test x$gcc_cv_ld != x; then # Check if linker supports --push-state/--pop-state options - if $gcc_cv_ld --help 2>/dev/null | grep -- '--push-state' > /dev/null; then + if $gcc_cv_ld --help 2>&1 | grep -- '--push-state' > /dev/null; then ld_pushpopstate_support=yes fi fi