qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: Stefan Weil <sw@weilnetz.de>, patches@linaro.org
Subject: [Qemu-devel] [PATCH 11/11] configure: Check for -Werror causing failures when compiling tests
Date: Wed, 18 Jul 2012 15:10:28 +0100	[thread overview]
Message-ID: <1342620628-12751-12-git-send-email-peter.maydell@linaro.org> (raw)
In-Reply-To: <1342620628-12751-1-git-send-email-peter.maydell@linaro.org>

Add support for checking whether test case code can compile without
warnings, by recompiling each successful test with -Werror. If the
-Werror version doesn't pass, we bail out. This gives us the same
level of visibility of warnings in test code as --enable-werror
provides for the main compile.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 configure |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/configure b/configure
index 8140464..1939bdb 100755
--- a/configure
+++ b/configure
@@ -27,16 +27,40 @@ printf " '%s'" "$0" "$@" >> config.log
 echo >> config.log
 echo "#" >> config.log
 
+do_cc() {
+    # Run the compiler, capturing its output to the log.
+    echo $cc "$@" >> config.log
+    $cc "$@" >> config.log 2>&1 || return $?
+    # Test passed. If this is an --enable-werror build, rerun
+    # the test with -Werror and bail out if it fails. This
+    # makes warning-generating-errors in configure test code
+    # obvious to developers.
+    if test "$werror" != "yes"; then
+        return 0
+    fi
+    # Don't bother rerunning the compile if we were already using -Werror
+    case "$*" in
+        *-Werror*)
+           return 0
+        ;;
+    esac
+    echo $cc -Werror "$@" >> config.log
+    $cc -Werror "$@" >> config.log 2>&1 && return $?
+    echo "ERROR: configure test passed without -Werror but failed with -Werror."
+    echo "This is probably a bug in the configure script. The failing command"
+    echo "will be at the bottom of config.log."
+    echo "You can run configure with --disable-werror to bypass this check."
+    exit 1
+}
+
 compile_object() {
-  echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log
-  $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1
+  do_cc $QEMU_CFLAGS -c -o $TMPO $TMPC
 }
 
 compile_prog() {
   local_cflags="$1"
   local_ldflags="$2"
-  echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log
-  $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1
+  do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
 }
 
 # symbolically link $1 to $2.  Portable version of "ln -sf".
-- 
1.7.5.4

  parent reply	other threads:[~2012-07-18 14:10 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-18 14:10 [Qemu-devel] [PATCH 00/11] configure: Fix -Werror issues Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 01/11] configure: Don't run configure tests with -Werror enabled Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 02/11] configure: Fix build with ALSA audio driver Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 03/11] configure: Fix build with capabilities Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 04/11] configure: Replace bash code by standard shell code Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 05/11] configure: -march=i486 belongs in QEMU_CFLAGS, not CFLAGS Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 06/11] configure: Fix errors in test for__sync_fetch_and_and Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 07/11] configure: Fix compile warning in PNG test Peter Maydell
2012-07-18 15:46   ` Stefan Weil
2012-07-18 14:10 ` [Qemu-devel] [PATCH 08/11] configure: Fix warnings in VDE library probe Peter Maydell
2012-07-18 14:10 ` [Qemu-devel] [PATCH 09/11] configure: Fix compile warning in utimensat/futimens test Peter Maydell
2012-07-18 15:48   ` Stefan Weil
2012-07-18 14:10 ` [Qemu-devel] [PATCH 10/11] configure: -I\$(SRC_PATH) goes in QEMU_INCLUDES not QEMU_CFLAGS Peter Maydell
2012-07-18 14:10 ` Peter Maydell [this message]
2012-07-28  9:04   ` [Qemu-devel] [PATCH 11/11] configure: Check for -Werror causing failures when compiling tests Blue Swirl
2012-07-28 10:57     ` Peter Maydell
2012-07-28 12:09       ` Blue Swirl
2012-07-28 12:14         ` Peter Maydell
2012-07-28 12:20           ` Blue Swirl
2012-07-28 12:31           ` Blue Swirl
2012-07-28 13:48             ` Peter Maydell
2012-08-04 17:57               ` Blue Swirl
2012-08-09 18:24                 ` Peter Maydell
2012-08-09 20:15                   ` Blue Swirl
2012-08-11 19:12   ` Blue Swirl
2012-07-31 20:21 ` [Qemu-devel] [PATCH 00/11] configure: Fix -Werror issues Blue Swirl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1342620628-12751-12-git-send-email-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=patches@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=sw@weilnetz.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).