configure: Check for -Werror causing failures when compiling tests
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> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
5fda043f9c
commit
8dc38a78d0
32
configure
vendored
32
configure
vendored
@ -27,16 +27,40 @@ printf " '%s'" "$0" "$@" >> config.log
|
|||||||
echo >> config.log
|
echo >> 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() {
|
compile_object() {
|
||||||
echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log
|
do_cc $QEMU_CFLAGS -c -o $TMPO $TMPC
|
||||||
$cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
compile_prog() {
|
compile_prog() {
|
||||||
local_cflags="$1"
|
local_cflags="$1"
|
||||||
local_ldflags="$2"
|
local_ldflags="$2"
|
||||||
echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log
|
do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
|
||||||
$cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# symbolically link $1 to $2. Portable version of "ln -sf".
|
# symbolically link $1 to $2. Portable version of "ln -sf".
|
||||||
|
Loading…
Reference in New Issue
Block a user