From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43603) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCdmC-0002fA-5g for qemu-devel@nongnu.org; Mon, 04 Mar 2013 17:22:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UCdmA-0000X5-JI for qemu-devel@nongnu.org; Mon, 04 Mar 2013 17:22:32 -0500 Received: from e23smtp09.au.ibm.com ([202.81.31.142]:44619) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCdmA-0000Wi-1u for qemu-devel@nongnu.org; Mon, 04 Mar 2013 17:22:30 -0500 Received: from /spool/local by e23smtp09.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 5 Mar 2013 08:14:45 +1000 Received: from d23relay05.au.ibm.com (d23relay05.au.ibm.com [9.190.235.152]) by d23dlp03.au.ibm.com (Postfix) with ESMTP id 4308E357802D for ; Tue, 5 Mar 2013 09:22:17 +1100 (EST) Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay05.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r24M9W0b11010426 for ; Tue, 5 Mar 2013 09:09:33 +1100 Received: from d23av03.au.ibm.com (loopback [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r24MMGXX028057 for ; Tue, 5 Mar 2013 09:22:16 +1100 From: Anthony Liguori In-Reply-To: References: <7aa6a5e5b2f013994380033374deec4370dea9e5.1362303363.git.blauwirbel@gmail.com> <877glo9owr.fsf@codemonkey.ws> <8738wax619.fsf@codemonkey.ws> Date: Mon, 04 Mar 2013 16:22:09 -0600 Message-ID: <87ip56rejy.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PATCH] build: compile gtk.c with special CFLAGS List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org Blue Swirl writes: > On Mon, Mar 4, 2013 at 8:29 PM, Anthony Liguori wrote: >> Blue Swirl writes: >> >>> On Sun, Mar 3, 2013 at 9:03 PM, Anthony Liguori wrote: >>>> Blue Swirl writes: >>>> >>>>> Compile gtk.c with special CFLAGS instead of disabling -Werror globally. >>>>> >>>>> Signed-off-by: Blue Swirl >>>> >>>> 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 >>>> >>