From 6bfea97493900d456245ca9f29765e1f0ee9d649 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 21 Nov 2012 12:31:01 -0800 Subject: Properly check linker -z XXX support --- configure | 140 +++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 80 insertions(+), 60 deletions(-) (limited to 'configure') diff --git a/configure b/configure index 1927ce81c6..ff2d34ca9c 100755 --- a/configure +++ b/configure @@ -6235,86 +6235,101 @@ if test $libc_cv_cc_with_libunwind = yes; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -z nodelete option" >&5 -$as_echo_n "checking for -z nodelete option... " >&6; } -if ${libc_cv_z_nodelete+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&5 +$as_echo_n "checking for linker that supports -z nodelete... " >&6; } +libc_linker_feature=no +if test x"$gnu_ld" = x"yes"; then + libc_linker_check=`$LD -v --help 2>/dev/null | grep "\-z nodelete"` + if test -n "$libc_linker_check"; then + cat > conftest.c <&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } -then + then + libc_linker_feature=yes + fi + rm -f conftest* + fi +fi +if test $libc_linker_feature = yes; then libc_cv_z_nodelete=yes else as_fn_error $? "linker with -z nodelete support required" "$LINENO" 5 fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_nodelete" >&5 -$as_echo "$libc_cv_z_nodelete" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5 +$as_echo "$libc_linker_feature" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -z nodlopen option" >&5 -$as_echo_n "checking for -z nodlopen option... " >&6; } -if ${libc_cv_z_nodlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&5 +$as_echo_n "checking for linker that supports -z nodlopen... " >&6; } +libc_linker_feature=no +if test x"$gnu_ld" = x"yes"; then + libc_linker_check=`$LD -v --help 2>/dev/null | grep "\-z nodlopen"` + if test -n "$libc_linker_check"; then + cat > conftest.c <&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } -then + then + libc_linker_feature=yes + fi + rm -f conftest* + fi +fi +if test $libc_linker_feature = yes; then libc_cv_z_nodlopen=yes else as_fn_error $? "linker with -z nodlopen support required" "$LINENO" 5 fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_nodlopen" >&5 -$as_echo "$libc_cv_z_nodlopen" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5 +$as_echo "$libc_linker_feature" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -z initfirst option" >&5 -$as_echo_n "checking for -z initfirst option... " >&6; } -if ${libc_cv_z_initfirst+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&5 +$as_echo_n "checking for linker that supports -z initfirst... " >&6; } +libc_linker_feature=no +if test x"$gnu_ld" = x"yes"; then + libc_linker_check=`$LD -v --help 2>/dev/null | grep "\-z initfirst"` + if test -n "$libc_linker_check"; then + cat > conftest.c <&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } -then + then + libc_linker_feature=yes + fi + rm -f conftest* + fi +fi +if test $libc_linker_feature = yes; then libc_cv_z_initfirst=yes else as_fn_error $? "linker with -z initfirst support required" "$LINENO" 5 fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_initfirst" >&5 -$as_echo "$libc_cv_z_initfirst" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5 +$as_echo "$libc_linker_feature" >&6; } # Add-on fragments can set these for other machines. libc_commonpagesize=${libc_commonpagesize:-no} @@ -6511,32 +6526,37 @@ if test "$libc_cv_z_combreloc" = yes; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -z execstack" >&5 -$as_echo_n "checking for -z execstack... " >&6; } -if ${libc_cv_z_execstack+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.c <&5 +$as_echo_n "checking for linker that supports -z execstack... " >&6; } +libc_linker_feature=no +if test x"$gnu_ld" = x"yes"; then + libc_linker_check=`$LD -v --help 2>/dev/null | grep "\-z execstack"` + if test -n "$libc_linker_check"; then + cat > conftest.c <&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } -then + then + libc_linker_feature=yes + fi + rm -f conftest* + fi +fi +if test $libc_linker_feature = yes; then libc_cv_z_execstack=yes else libc_cv_z_execstack=no fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_execstack" >&5 -$as_echo "$libc_cv_z_execstack" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_linker_feature" >&5 +$as_echo "$libc_linker_feature" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fpie" >&5 -- cgit 1.4.1