]> Git Repo - qemu.git/commitdiff
Enforce stack protector usage
authorMiroslav Rezanina <[email protected]>
Wed, 2 Jul 2014 08:05:24 +0000 (10:05 +0200)
committerPaolo Bonzini <[email protected]>
Thu, 10 Jul 2014 15:06:29 +0000 (17:06 +0200)
If --enable-stack-protector is used is used, configure script try to use
--fstack-protector-strong. In case it's not supported, --fstack-protector-all
is enabled. If both protectors are not supported, configure does not use
any protector at all without any notification.

This patch reports error when user requests stack protector to be used and
both protector modes are not supported. Behavior is not changed in case
user do not use any of --enable-stack-protector/--disable-stack-protector.

Signed-off-by: Miroslav Rezanina <[email protected]>
[Fix non-POSIX operator in test. - Paolo]
Signed-off-by: Paolo Bonzini <[email protected]>
configure

index 7dd43fdc70d04bde3d996c7eabbb5434051ead21..f7685b565cff8256b3bb1bcfb1035c52dafe3ff2 100755 (executable)
--- a/configure
+++ b/configure
@@ -1489,8 +1489,9 @@ for flag in $gcc_flags; do
     fi
 done
 
-if test "$stack_protector" != "no" ; then
+if test "$stack_protector" != "no"; then
   gcc_flags="-fstack-protector-strong -fstack-protector-all"
+  sp_on=0
   for flag in $gcc_flags; do
     # We need to check both a compile and a link, since some compiler
     # setups fail only on a .c->.o compile and some only at link time
@@ -1498,9 +1499,15 @@ if test "$stack_protector" != "no" ; then
        compile_prog "-Werror $flag" ""; then
       QEMU_CFLAGS="$QEMU_CFLAGS $flag"
       LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag"
+      sp_on=1
       break
     fi
   done
+  if test "$stack_protector" = yes; then
+    if test $sp_on = 0; then
+      error_exit "Stack protector not supported"
+    fi
+  fi
 fi
 
 # Workaround for http://gcc.gnu.org/PR55489.  Happens with -fPIE/-fPIC and
This page took 0.033611 seconds and 4 git commands to generate.