From patchwork Tue Jul 17 19:24:16 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 10075 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 4054123E56 for ; Tue, 17 Jul 2012 19:24:23 +0000 (UTC) Received: from mail-gg0-f180.google.com (mail-gg0-f180.google.com [209.85.161.180]) by fiordland.canonical.com (Postfix) with ESMTP id E5652A18320 for ; Tue, 17 Jul 2012 19:24:22 +0000 (UTC) Received: by ggnf1 with SMTP id f1so861736ggn.11 for ; Tue, 17 Jul 2012 12:24:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-forwarded-to:x-forwarded-for:delivered-to:received-spf:from:to:cc :subject:date:message-id:x-mailer:x-gm-message-state; bh=qq6vJN8gmpg3bSuPvwTN2FZjGP/T7u0ndkt5Q1SsVJE=; b=l0AU1n52kt0Fpr/MIL5zivo8z+CDjF8eBhcbyFPBaR9rT0jeX/C2PG8wyjsT/OzS3I zUgXPfikdmyBPI00PioYwwWAinEb7rA6MePPpYj0Ewky8xecwRip0tk4S5cJZ3TDCxKv J58pPx4+4gsJPM6JbSmBPNr2MpyKxuEMCbVJVB983cahbyQYRykhc+FBmRkEXR+uXsKB H9RL+MLDinXkpjuNrG9C3eTHKMQs7Wsyb0Nio0I+qO3g8LqPf29Mz+qQGvlTgxBNhDpL DasuQScnoNw0KW4jfs9UNlGU8OFDxMBvmzfh7xVXkcG46emMUay+Z1+CfU9N7vTvI08c bwtQ== Received: by 10.42.155.73 with SMTP id t9mr2201068icw.48.1342553062249; Tue, 17 Jul 2012 12:24:22 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.231.241.2 with SMTP id lc2csp23645ibb; Tue, 17 Jul 2012 12:24:21 -0700 (PDT) Received: by 10.216.134.97 with SMTP id r75mr76774wei.127.1342553060712; Tue, 17 Jul 2012 12:24:20 -0700 (PDT) Received: from mnementh.archaic.org.uk (mnementh.archaic.org.uk. [81.2.115.146]) by mx.google.com with ESMTPS id gq10si32994261wib.3.2012.07.17.12.24.20 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 17 Jul 2012 12:24:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) client-ip=81.2.115.146; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) smtp.mail=pm215@archaic.org.uk Received: from pm215 by mnementh.archaic.org.uk with local (Exim 4.72) (envelope-from ) id 1SrDNY-0002tJ-IS; Tue, 17 Jul 2012 20:24:16 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Cc: patches@linaro.org, Blue Swirl , Stefan Weil , Eric Blake , Alexander Graf Subject: [PATCH] configure: Don't run configure tests with -Werror enabled Date: Tue, 17 Jul 2012 20:24:16 +0100 Message-Id: <1342553056-11090-1-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 1.7.2.5 X-Gm-Message-State: ALoCoQm50dg+JRVzTdj+8auKcDh4xkbI/wczNhoNr5LJUu23Jrc4294nFlPimcqqLPxe9Z3ZQwVK Don't run configure tests with -Werror in the compiler flags. The idea of -Werror is that it makes problems very obvious to developers, so they get fixed quickly. However, when running configure tests, failures due to -Werror are far from obvious -- they simply result in the test quietly failing when it should have passed. Not using -Werror is in line with recommended practice in the Autoconf world. This commit is essentially backing out the changes in commit 417c9d72. Instead we fix the problem that commit was trying to address in a Reviewed-by: Stefan Weil different way: we add -Werror only for the test of the nss headers, with a comment that this is specifically intended to detect a bug in some releases of nss. We also have to clean up a bug in the smartcard test where it was trying to include smartcard_cflags in the test compile flags: this would always result in a failure with -Werror, because they include an escaped "$(SRC_PATH)" which is only valid when used in the final makefile. Signed-off-by: Peter Maydell --- Yeah, this is kind of breaking the "never say 'also' in a commit message" rule :-) configure | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/configure b/configure index 0a3896e..383fa3d 100755 --- a/configure +++ b/configure @@ -1156,9 +1156,10 @@ gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits" gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags" gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags" gcc_flags="-fstack-protector-all -Wendif-labels $gcc_flags" -if test "$werror" = "yes" ; then - gcc_flags="-Werror $gcc_flags" -fi +# Note that we do not add -Werror to gcc_flags here, because that would +# enable it for all configure tests. If a configure test failed due +# to -Werror this would just silently disable some features, +# so it's too error prone. cat > $TMPC << EOF int main(void) { return 0; } EOF @@ -2656,8 +2657,16 @@ EOF smartcard_cflags="-I\$(SRC_PATH)/libcacard" libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs" libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags" + test_cflags="$libcacard_cflags" + # The header files in nss < 3.13.3 have a bug which causes them to + # emit a warning. If we're going to compile QEMU with -Werror, then + # test that the headers don't have this bug. Otherwise we would pass + # the configure test but fail to compile QEMU later. + if test "$werror" = "yes"; then + test_cflags="-Werror $test_cflags" + fi if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ - compile_prog "$smartcard_cflags $libcacard_cflags" "$libcacard_libs"; then + compile_prog "$test_cflags" "$libcacard_libs"; then smartcard_nss="yes" QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags" libs_softmmu="$libcacard_libs $libs_softmmu" @@ -2903,6 +2912,11 @@ if test -z "$zero_malloc" ; then fi fi +# Now we've finished running tests it's OK to add -Werror to the compiler flags +if test "$werror" = "yes"; then + QEMU_CFLAGS="-Werror $QEMU_CFLAGS" +fi + if test "$solaris" = "no" ; then if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then LDFLAGS="-Wl,--warn-common $LDFLAGS"