qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/9] Move all compiler warning/optimization flag


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH 1/9] Move all compiler warning/optimization flags to the same place
Date: Mon, 02 Apr 2012 18:19:25 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20

Am 02.04.2012 12:50, schrieb Daniel P. Berrange:
From: "Daniel P. Berrange" <address@hidden>

The list of warning/optimization flags set in QEMU_CFLAGS is
in two places in configure. Only one of the places checks
for GCC support. Merge the two separate lists into one and
ensure they are all tested. Set one flag per line to make
it easier to read the list of flags as increasing numbers
are enabled

The first list includes compiler flags which don't need
a test because all versions of gcc support them.

Only the flags in the second list must be tested.

Merging both list and testing all flags increases the time
needed for configure when the current test method is used.

It's possible to reduce the number of compiler invocations
during configure by passing all flags together to the
compiler and analyzing the error message which is returned.

Example:

gcc -Wtest1 -Wunsupported2 -E - < /dev/null
cc1: error: unrecognized command line option "-Wtest1"
cc1: error: unrecognized command line option "-Wunsupported2"


Signed-off-by: Daniel P. Berrange <address@hidden>
---
configure | 31 ++++++++++++++++++++++++-------
1 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/configure b/configure
index 4b3adc9..cd40d17 100755
--- a/configure
+++ b/configure
@@ -252,9 +252,6 @@ pkg_config=query_pkg_config
sdl_config="${SDL_CONFIG-${cross_prefix}sdl-config}"

# default flags for all hosts
-QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
-QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
-QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
@@ -1144,10 +1141,30 @@ else
exit 1
fi

-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"
+gcc_flags=
+
+# Optimization flags
+gcc_flags="$gcc_flags -fstack-protector-all"
+gcc_flags="$gcc_flags -fno-strict-aliasing"
+
+# Warning flags
+gcc_flags="$gcc_flags -Wall"
+gcc_flags="$gcc_flags -Wundef"
+gcc_flags="$gcc_flags -Wwrite-strings"
+gcc_flags="$gcc_flags -Wmissing-prototypes"
+gcc_flags="$gcc_flags -Wstrict-prototypes"
+gcc_flags="$gcc_flags -Wredundant-decls"
+gcc_flags="$gcc_flags -Wold-style-declaration"
+gcc_flags="$gcc_flags -Wold-style-definition"
+gcc_flags="$gcc_flags -Wtype-limits"
+gcc_flags="$gcc_flags -Wformat-security"
+gcc_flags="$gcc_flags -Wformat-y2k"
+gcc_flags="$gcc_flags -Winit-self"
+gcc_flags="$gcc_flags -Wignored-qualifiers"
+gcc_flags="$gcc_flags -Wmissing-include-dirs"
+gcc_flags="$gcc_flags -Wempty-body"
+gcc_flags="$gcc_flags -Wnested-externs"
+gcc_flags="$gcc_flags -Wendif-labels"

Could you sort the -Wxxx flags? Then it's easier to avoid
duplicates, and merge conflicts will occur less often when
new flags are added.

cat > $TMPC << EOF
int main(void) { return 0; }
EOF

Regards,

Stefan Weil




reply via email to

[Prev in Thread] Current Thread [Next in Thread]