From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55408) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X5Gpv-0000Zf-UF for qemu-devel@nongnu.org; Thu, 10 Jul 2014 12:04:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X5Gpq-0004JZ-5m for qemu-devel@nongnu.org; Thu, 10 Jul 2014 12:04:43 -0400 Received: from mail-we0-x22c.google.com ([2a00:1450:400c:c03::22c]:45098) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X5Gpp-0004Iq-Vu for qemu-devel@nongnu.org; Thu, 10 Jul 2014 12:04:38 -0400 Received: by mail-we0-f172.google.com with SMTP id u57so9183236wes.3 for ; Thu, 10 Jul 2014 09:04:37 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Thu, 10 Jul 2014 18:04:09 +0200 Message-Id: <1405008253-9816-7-git-send-email-pbonzini@redhat.com> In-Reply-To: <1405008253-9816-1-git-send-email-pbonzini@redhat.com> References: <1405008253-9816-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PULL 06/10] Enforce stack protector usage List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Miroslav Rezanina From: Miroslav Rezanina 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 [Fix non-POSIX operator in test. - Paolo] Signed-off-by: Paolo Bonzini --- configure | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 7dd43fd..f7685b5 100755 --- 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 -- 1.8.3.1