Message ID | 1333363816-1691-2-git-send-email-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Am 02.04.2012 12:50, schrieb Daniel P. Berrange: > From: "Daniel P. Berrange" <berrange@redhat.com> > > 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 <berrange@redhat.com> > --- > 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
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" cat > $TMPC << EOF int main(void) { return 0; } EOF