123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- When checking for stack protector support we need to actually link the
- test program.
- Backported from upstream:
- http://www.sudo.ws/repos/sudo/rev/ab4f94aac7de
- Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
- # HG changeset patch
- # User Todd C. Miller <Todd.Miller@courtesan.com>
- # Date 1446216562 21600
- # Node ID ab4f94aac7de73efa1b201890354c74126baf7ca
- # Parent e6bc59225c06c5d45580197519a73e3feea14cbd
- When checking for stack protector support we need to actually link
- the test program.
- diff -r e6bc59225c06 -r ab4f94aac7de configure
- --- a/configure Thu Oct 29 14:06:21 2015 -0600
- +++ b/configure Fri Oct 30 08:49:22 2015 -0600
- @@ -23922,11 +23922,17 @@
- $as_echo_n "(cached) " >&6
- else
-
- - sudo_cv_var_stack_protector=no
- + # Avoid using CFLAGS since the compiler might optimize away our
- + # test. We don't want LIBS to interfere with the test but keep
- + # LDFLAGS as it may have an rpath needed to find the ssp lib.
- _CFLAGS="$CFLAGS"
- _LDFLAGS="$LDFLAGS"
- - CFLAGS="-fstack-protector-strong"
- - LDFLAGS="$_LDFLAGS -fstack-protector-strong"
- + _LIBS="$LIBS"
- + LIBS=
- +
- + sudo_cv_var_stack_protector="-fstack-protector-strong"
- + CFLAGS="$sudo_cv_var_stack_protector"
- + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-
- @@ -23940,14 +23946,13 @@
- }
-
- _ACEOF
- -if ac_fn_c_try_compile "$LINENO"; then :
- -
- - sudo_cv_var_stack_protector="-fstack-protector-strong"
- -
- -else
- -
- - CFLAGS="-fstack-protector-all"
- - LDFLAGS="$_LDFLAGS -fstack-protector-all"
- +if ac_fn_c_try_link "$LINENO"; then :
- +
- +else
- +
- + sudo_cv_var_stack_protector="-fstack-protector-all"
- + CFLAGS="$sudo_cv_var_stack_protector"
- + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-
- @@ -23961,14 +23966,13 @@
- }
-
- _ACEOF
- -if ac_fn_c_try_compile "$LINENO"; then :
- -
- - sudo_cv_var_stack_protector="-fstack-protector-all"
- -
- -else
- -
- - CFLAGS="-fstack-protector"
- - LDFLAGS="$_LDFLAGS -fstack-protector"
- +if ac_fn_c_try_link "$LINENO"; then :
- +
- +else
- +
- + sudo_cv_var_stack_protector="-fstack-protector"
- + CFLAGS="$sudo_cv_var_stack_protector"
- + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-
- @@ -23982,20 +23986,26 @@
- }
-
- _ACEOF
- -if ac_fn_c_try_compile "$LINENO"; then :
- -
- - sudo_cv_var_stack_protector="-fstack-protector"
- -
- -fi
- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- -
- -fi
- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- -
- -fi
- -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- +if ac_fn_c_try_link "$LINENO"; then :
- +
- +else
- +
- + sudo_cv_var_stack_protector=no
- +
- +fi
- +rm -f core conftest.err conftest.$ac_objext \
- + conftest$ac_exeext conftest.$ac_ext
- +
- +fi
- +rm -f core conftest.err conftest.$ac_objext \
- + conftest$ac_exeext conftest.$ac_ext
- +
- +fi
- +rm -f core conftest.err conftest.$ac_objext \
- + conftest$ac_exeext conftest.$ac_ext
- CFLAGS="$_CFLAGS"
- LDFLAGS="$_LDFLAGS"
- + LIBS="$_LIBS"
-
-
- fi
- diff -r e6bc59225c06 -r ab4f94aac7de configure.ac
- --- a/configure.ac Thu Oct 29 14:06:21 2015 -0600
- +++ b/configure.ac Fri Oct 30 08:49:22 2015 -0600
- @@ -3981,37 +3981,42 @@
- AC_CACHE_CHECK([for compiler stack protector support],
- [sudo_cv_var_stack_protector],
- [
- - sudo_cv_var_stack_protector=no
- + # Avoid using CFLAGS since the compiler might optimize away our
- + # test. We don't want LIBS to interfere with the test but keep
- + # LDFLAGS as it may have an rpath needed to find the ssp lib.
- _CFLAGS="$CFLAGS"
- _LDFLAGS="$LDFLAGS"
- - CFLAGS="-fstack-protector-strong"
- - LDFLAGS="$_LDFLAGS -fstack-protector-strong"
- - AC_COMPILE_IFELSE([
- + _LIBS="$LIBS"
- + LIBS=
- +
- + sudo_cv_var_stack_protector="-fstack-protector-strong"
- + CFLAGS="$sudo_cv_var_stack_protector"
- + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector"
- + AC_LINK_IFELSE([
- AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
- [[char buf[1024]; buf[1023] = '\0';]])
- - ], [
- - sudo_cv_var_stack_protector="-fstack-protector-strong"
- - ], [
- - CFLAGS="-fstack-protector-all"
- - LDFLAGS="$_LDFLAGS -fstack-protector-all"
- - AC_COMPILE_IFELSE([
- + ], [], [
- + sudo_cv_var_stack_protector="-fstack-protector-all"
- + CFLAGS="$sudo_cv_var_stack_protector"
- + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector"
- + AC_LINK_IFELSE([
- AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
- [[char buf[1024]; buf[1023] = '\0';]])
- - ], [
- - sudo_cv_var_stack_protector="-fstack-protector-all"
- - ], [
- - CFLAGS="-fstack-protector"
- - LDFLAGS="$_LDFLAGS -fstack-protector"
- - AC_COMPILE_IFELSE([
- + ], [], [
- + sudo_cv_var_stack_protector="-fstack-protector"
- + CFLAGS="$sudo_cv_var_stack_protector"
- + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector"
- + AC_LINK_IFELSE([
- AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
- [[char buf[1024]; buf[1023] = '\0';]])
- - ], [
- - sudo_cv_var_stack_protector="-fstack-protector"
- - ], [])
- + ], [], [
- + sudo_cv_var_stack_protector=no
- + ])
- ])
- ])
- CFLAGS="$_CFLAGS"
- LDFLAGS="$_LDFLAGS"
- + LIBS="$_LIBS"
- ]
- )
- if test X"$sudo_cv_var_stack_protector" != X"no"; then
|