From patchwork Wed Jul 2 08:05:24 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miroslav Rezanina X-Patchwork-Id: 366284 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 9D1291400B5 for ; Wed, 2 Jul 2014 18:06:15 +1000 (EST) Received: from localhost ([::1]:51536 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X2FYT-0002JT-I8 for incoming@patchwork.ozlabs.org; Wed, 02 Jul 2014 04:06:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58070) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X2FY6-00020r-Uk for qemu-devel@nongnu.org; Wed, 02 Jul 2014 04:05:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X2FXz-0003oQ-A9 for qemu-devel@nongnu.org; Wed, 02 Jul 2014 04:05:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:30280) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X2FXy-0003o9-Ee for qemu-devel@nongnu.org; Wed, 02 Jul 2014 04:05:43 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6285fbP016924 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 2 Jul 2014 04:05:41 -0400 Received: from lws-ntb.brq.redhat.com (dhcp-27-57.brq.redhat.com [10.34.27.57]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6285dZB008663; Wed, 2 Jul 2014 04:05:40 -0400 From: mrezanin@redhat.com To: qemu-devel@nongnu.org Date: Wed, 2 Jul 2014 10:05:24 +0200 Message-Id: <1404288324-16766-1-git-send-email-mrezanin@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: Miroslav Rezanina Subject: [Qemu-devel] [PATCH] Enforce stack protector usage X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 Reviewed-by: Markus Armbruster --- configure | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/configure b/configure index 7dd43fd..b880954 100755 --- a/configure +++ b/configure @@ -1491,6 +1491,7 @@ done 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