On Mon, Mar 4, 2013 at 8:29 PM, Anthony Liguori <aligu...@us.ibm.com> wrote: > Blue Swirl <blauwir...@gmail.com> writes: > >> On Sun, Mar 3, 2013 at 9:03 PM, Anthony Liguori <aligu...@us.ibm.com> wrote: >>> Blue Swirl <blauwir...@gmail.com> writes: >>> >>>> Compile gtk.c with special CFLAGS instead of disabling -Werror globally. >>>> >>>> Signed-off-by: Blue Swirl <blauwir...@gmail.com> >>> >>> I thought Kevin's pragma trick solved this problem? >> >> Not in all cases it seems. >> >>> >>> Are you attempting to avoid disabling Werror when prgram isn't >>> available? That seems to defeat the purpose of doing the pragma thing >>> to begin with. >> >> When the pragma works, there should not be any need to disable -Werror >> or other flags. If the pragmas are not available, we can disable the >> offending flags only for gtk.c and keep them for the rest of the >> build. > > The idea of the pragma is that gtk.c is the only place that will need > this in the future.
It's also the only file that needs GTK_CFLAGS. For simplicity, that could contain also QEMU_CFLAGS, filtered for offending flags. > So either we like the pragma approach and just live with disabling > Werror on older GCCs or there's no point in doing the pragma approach in > the first place. > > Since this is an issue only with older GCCs, I see no reason to care > about disabling Werror really. It's a problem that solves itself over time. > > Regards, > > Anthony Liguori > >> >>> >>> Regards, >>> >>> Anthony Liguori >>> >>>> --- >>>> configure | 12 +++++++++++- >>>> ui/Makefile.objs | 2 +- >>>> 2 files changed, 12 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/configure b/configure >>>> index 19738ac..2a043d6 100755 >>>> --- a/configure >>>> +++ b/configure >>>> @@ -3139,6 +3139,7 @@ fi >>>> # the build doesn't fail anyway. >>>> >>>> pragma_disable_unused_but_set=no >>>> +gtk_special_cflags=no >>>> cat > $TMPC << EOF >>>> #pragma GCC diagnostic ignored "-Wunused-but-set-variable" >>>> #pragma GCC diagnostic ignored "-Wstrict-prototypes" >>>> @@ -3150,7 +3151,7 @@ EOF >>>> if compile_prog "-Werror" "" ; then >>>> pragma_diagnostic_available=yes >>>> else >>>> - werror=no >>>> + gtk_special_cflags=yes >>>> fi >>>> >>>> ######################################## >>>> @@ -3845,6 +3846,15 @@ echo "WINDRES=$windres" >> $config_host_mak >>>> echo "LIBTOOL=$libtool" >> $config_host_mak >>>> echo "CFLAGS=$CFLAGS" >> $config_host_mak >>>> echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak >>>> +if test "$gtk_special_cflags" = "yes"; then >>>> + # Our compiler doesn't support #pragmas to suppress warnings and GTK >>>> + # can't be fixed, so compile GTK files with special CFLAGS >>>> + echo "GTK_SPECIAL_CFLAGS=$QEMU_CFLAGS" | \ >>>> + sed -e 's/-Wstrict-prototypes//g' \ >>>> + -e 's/-Wunused-but-set-variable//g' >> $config_host_mak >>>> +else >>>> + echo "GTK_SPECIAL_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak >>>> +fi >>>> echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak >>>> if test "$sparse" = "yes" ; then >>>> echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak >>>> diff --git a/ui/Makefile.objs b/ui/Makefile.objs >>>> index 6ddc0de..c9aa1e6 100644 >>>> --- a/ui/Makefile.objs >>>> +++ b/ui/Makefile.objs >>>> @@ -19,4 +19,4 @@ $(obj)/sdl.o $(obj)/sdl_zoom.o: QEMU_CFLAGS += >>>> $(SDL_CFLAGS) >>>> >>>> $(obj)/cocoa.o: $(SRC_PATH)/$(obj)/cocoa.m >>>> >>>> -$(obj)/gtk.o: QEMU_CFLAGS += $(GTK_CFLAGS) $(VTE_CFLAGS) >>>> +$(obj)/gtk.o: QEMU_CFLAGS = $(GTK_SPECIAL_CFLAGS) $(GTK_CFLAGS) >>>> $(VTE_CFLAGS) >>>> -- >>>> 1.7.2.5 >>> >