Message ID | 7aa6a5e5b2f013994380033374deec4370dea9e5.1362303363.git.blauwirbel@gmail.com |
---|---|
State | New |
Headers | show |
Blue Swirl <blauwirbel@gmail.com> writes: > Compile gtk.c with special CFLAGS instead of disabling -Werror globally. > > Signed-off-by: Blue Swirl <blauwirbel@gmail.com> I thought Kevin's pragma trick solved this problem? 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. 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
On Sun, Mar 3, 2013 at 9:03 PM, Anthony Liguori <aliguori@us.ibm.com> wrote: > Blue Swirl <blauwirbel@gmail.com> writes: > >> Compile gtk.c with special CFLAGS instead of disabling -Werror globally. >> >> Signed-off-by: Blue Swirl <blauwirbel@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. > > 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 >
Blue Swirl <blauwirbel@gmail.com> writes: > On Sun, Mar 3, 2013 at 9:03 PM, Anthony Liguori <aliguori@us.ibm.com> wrote: >> Blue Swirl <blauwirbel@gmail.com> writes: >> >>> Compile gtk.c with special CFLAGS instead of disabling -Werror globally. >>> >>> Signed-off-by: Blue Swirl <blauwirbel@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. 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 >>
On Mon, Mar 4, 2013 at 8:29 PM, Anthony Liguori <aliguori@us.ibm.com> wrote: > Blue Swirl <blauwirbel@gmail.com> writes: > >> On Sun, Mar 3, 2013 at 9:03 PM, Anthony Liguori <aliguori@us.ibm.com> wrote: >>> Blue Swirl <blauwirbel@gmail.com> writes: >>> >>>> Compile gtk.c with special CFLAGS instead of disabling -Werror globally. >>>> >>>> Signed-off-by: Blue Swirl <blauwirbel@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 >>> >
Blue Swirl <blauwirbel@gmail.com> writes: > On Mon, Mar 4, 2013 at 8:29 PM, Anthony Liguori <aliguori@us.ibm.com> wrote: >> Blue Swirl <blauwirbel@gmail.com> writes: >> >>> On Sun, Mar 3, 2013 at 9:03 PM, Anthony Liguori <aliguori@us.ibm.com> wrote: >>>> Blue Swirl <blauwirbel@gmail.com> writes: >>>> >>>>> Compile gtk.c with special CFLAGS instead of disabling -Werror globally. >>>>> >>>>> Signed-off-by: Blue Swirl <blauwirbel@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. I mistyped--sorry. gtk.c is *not* the only place that will need this in the future. Regards, Anthony Liguori > >> 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 >>>> >>
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)
Compile gtk.c with special CFLAGS instead of disabling -Werror globally. Signed-off-by: Blue Swirl <blauwirbel@gmail.com> --- configure | 12 +++++++++++- ui/Makefile.objs | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-)