提交 6ca026cb 编写于 作者: P Peter Maydell 提交者: Blue Swirl

configure: Don't run configure tests with -Werror enabled

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
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: NPeter Maydell <peter.maydell@linaro.org>
Reviewed-by: NStefan Weil <sw@weilnetz.de>
Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
上级 06d71fa1
...@@ -1158,9 +1158,10 @@ gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits" ...@@ -1158,9 +1158,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="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags" gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
gcc_flags="-fstack-protector-all -Wendif-labels $gcc_flags" gcc_flags="-fstack-protector-all -Wendif-labels $gcc_flags"
if test "$werror" = "yes" ; then # Note that we do not add -Werror to gcc_flags here, because that would
gcc_flags="-Werror $gcc_flags" # enable it for all configure tests. If a configure test failed due
fi # to -Werror this would just silently disable some features,
# so it's too error prone.
cat > $TMPC << EOF cat > $TMPC << EOF
int main(void) { return 0; } int main(void) { return 0; }
EOF EOF
...@@ -2658,8 +2659,16 @@ EOF ...@@ -2658,8 +2659,16 @@ EOF
smartcard_cflags="-I\$(SRC_PATH)/libcacard" smartcard_cflags="-I\$(SRC_PATH)/libcacard"
libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs" libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs"
libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags" 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 && \ 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" smartcard_nss="yes"
QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags" QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags"
libs_softmmu="$libcacard_libs $libs_softmmu" libs_softmmu="$libcacard_libs $libs_softmmu"
...@@ -2936,6 +2945,11 @@ if test -z "$zero_malloc" ; then ...@@ -2936,6 +2945,11 @@ if test -z "$zero_malloc" ; then
fi fi
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 test "$solaris" = "no" ; then
if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
LDFLAGS="-Wl,--warn-common $LDFLAGS" LDFLAGS="-Wl,--warn-common $LDFLAGS"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册