From f38349a026c7601c347e06c2047b11d304ba9c3d Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Mon, 2 Jul 2012 11:20:05 -0400 Subject: [PATCH] Use the autoconf cache when checking for symbol export control support. --- configure | 148 +++++++++++++++++++++++++++++++-------------------- configure.in | 99 ++++++++++++++++++++-------------- 2 files changed, 150 insertions(+), 97 deletions(-) diff --git a/configure b/configure index 5788c03f4..40cbc4763 100755 --- a/configure +++ b/configure @@ -20256,54 +20256,70 @@ fi if test -n "$LT_LDEXPORTS"; then if test "$lt_cv_prog_gnu_ld" = "yes"; then - cat > conftest.map <<-EOF - { - global: foo; - local: *; - }; - EOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5 $as_echo_n "checking whether ld supports anonymous map files... " >&6; } - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo; -int -main () -{ +if ${sudo_cv_var_gnu_ld_anon_map+:} false; then : + $as_echo_n "(cached) " >&6 +else - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - - LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,--version-script,\$(shlib_map)" - -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - else - case "$host" in - *-*-solaris2*) cat > conftest.map <<-EOF { global: foo; local: *; }; - EOF +EOF + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + sudo_cv_var_gnu_ld_anon_map=yes + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_gnu_ld_anon_map" >&5 +$as_echo "$sudo_cv_var_gnu_ld_anon_map" >&6; } + if test "$sudo_cv_var_gnu_ld_anon_map" = "yes"; then + LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,--version-script,\$(shlib_map)" + fi + else + case "$host" in + *-*-solaris2*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5 $as_echo_n "checking whether ld supports anonymous map files... " >&6; } - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if ${sudo_cv_var_solaris_ld_anon_map+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat > conftest.map <<-EOF + { + global: foo; + local: *; + }; +EOF + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo; int @@ -20316,29 +20332,39 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : - LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,-M,\$(shlib_map)" + sudo_cv_var_solaris_ld_anon_map=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_solaris_ld_anon_map" >&5 +$as_echo "$sudo_cv_var_solaris_ld_anon_map" >&6; } + if test "$sudo_cv_var_solaris_ld_anon_map" = "yes"; then + LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,-M,\$(shlib_map)" + fi ;; *-*-hpux*) - cat > conftest.opt <<-EOF - +e foo - EOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ld supports controlling exported symbols" >&5 $as_echo_n "checking whether ld supports controlling exported symbols... " >&6; } - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - if test -n "$GCC"; then - LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" - else - LDFLAGS="$LDFLAGS -Wl,-b -Wl,-c,./conftest.opt" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if ${sudo_cv_var_hpux_ld_symbol_export+:} false; then : + $as_echo_n "(cached) " >&6 +else + + echo "+e foo" > conftest.opt + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + if test -n "$GCC"; then + LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" + else + LDFLAGS="$LDFLAGS -Wl,-b -Wl,-c,./conftest.opt" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo; int @@ -20351,19 +20377,27 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : - LT_LDEXPORTS=; LT_LDDEP="\$(shlib_opt)"; LT_LDOPT="-Wl,-c,\$(shlib_opt)" + sudo_cv_var_hpux_ld_symbol_export=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_hpux_ld_symbol_export" >&5 +$as_echo "$sudo_cv_var_hpux_ld_symbol_export" >&6; } + if test "$sudo_cv_var_hpux_ld_symbol_export" = "yes"; then + LT_LDEXPORTS=; LT_LDDEP="\$(shlib_opt)"; LT_LDOPT="-Wl,-c,\$(shlib_opt)" + fi ;; esac fi fi -if test "$enable_pie" != "no"; then +if test "$enable_pie" != "no" -a -n "$GCC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fPIE" >&5 $as_echo_n "checking whether C compiler accepts -fPIE... " >&6; } if ${ax_cv_check_cflags___fPIE+:} false; then : diff --git a/configure.in b/configure.in index 4653d9344..d69dbad95 100644 --- a/configure.in +++ b/configure.in @@ -3219,60 +3219,79 @@ dnl This test relies on AC_LANG_WERROR dnl if test -n "$LT_LDEXPORTS"; then if test "$lt_cv_prog_gnu_ld" = "yes"; then - cat > conftest.map <<-EOF - { - global: foo; - local: *; - }; - EOF - AC_MSG_CHECKING([whether ld supports anonymous map files]) - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map" - AC_TRY_LINK([int foo;], [], [ - LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,--version-script,\$(shlib_map)" - ]) - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - else - case "$host" in - *-*-solaris2*) + AC_CACHE_CHECK([whether ld supports anonymous map files], + [sudo_cv_var_gnu_ld_anon_map], + [ cat > conftest.map <<-EOF { global: foo; local: *; }; - EOF - AC_MSG_CHECKING([whether ld supports anonymous map files]) +EOF _CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $lt_prog_compiler_pic" _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" + LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map" AC_TRY_LINK([int foo;], [], [ - LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,-M,\$(shlib_map)" + sudo_cv_var_gnu_ld_anon_map=yes ]) CFLAGS="$_CFLAGS" LDFLAGS="$_LDFLAGS" + ] + ) + if test "$sudo_cv_var_gnu_ld_anon_map" = "yes"; then + LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,--version-script,\$(shlib_map)" + fi + else + case "$host" in + *-*-solaris2*) + AC_CACHE_CHECK([whether ld supports anonymous map files], + [sudo_cv_var_solaris_ld_anon_map], + [ + cat > conftest.map <<-EOF + { + global: foo; + local: *; + }; +EOF + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" + AC_TRY_LINK([int foo;], [], [ + sudo_cv_var_solaris_ld_anon_map=yes + ]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + ] + ) + if test "$sudo_cv_var_solaris_ld_anon_map" = "yes"; then + LT_LDEXPORTS=; LT_LDDEP="\$(shlib_map)"; LT_LDMAP="-Wl,-M,\$(shlib_map)" + fi ;; *-*-hpux*) - cat > conftest.opt <<-EOF - +e foo - EOF - AC_MSG_CHECKING([whether ld supports controlling exported symbols]) - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - if test -n "$GCC"; then - LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" - else - LDFLAGS="$LDFLAGS -Wl,-b -Wl,-c,./conftest.opt" - fi - AC_TRY_LINK([int foo;], [], [ + AC_CACHE_CHECK([whether ld supports controlling exported symbols], + [sudo_cv_var_hpux_ld_symbol_export], + [ + echo "+e foo" > conftest.opt + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + if test -n "$GCC"; then + LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" + else + LDFLAGS="$LDFLAGS -Wl,-b -Wl,-c,./conftest.opt" + fi + AC_TRY_LINK([int foo;], [], [ + sudo_cv_var_hpux_ld_symbol_export=yes + ]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + ] + ) + if test "$sudo_cv_var_hpux_ld_symbol_export" = "yes"; then LT_LDEXPORTS=; LT_LDDEP="\$(shlib_opt)"; LT_LDOPT="-Wl,-c,\$(shlib_opt)" - ]) - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" + fi ;; esac fi @@ -3282,7 +3301,7 @@ dnl dnl Check for PIE executable support if using gcc. dnl This test relies on AC_LANG_WERROR dnl -if test "$enable_pie" != "no"; then +if test "$enable_pie" != "no" -a -n "$GCC"; then AX_CHECK_COMPILE_FLAG([-fPIE], [ _CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fPIE"