From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:60265) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US4kU-0000bn-8w for qemu-devel@nongnu.org; Tue, 16 Apr 2013 08:12:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1US4kP-0004qJ-FZ for qemu-devel@nongnu.org; Tue, 16 Apr 2013 08:12:34 -0400 Received: from mx1.redhat.com ([209.132.183.28]:26546) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US4kP-0004qD-8F for qemu-devel@nongnu.org; Tue, 16 Apr 2013 08:12:29 -0400 From: Markus Armbruster References: <516BA87A.2020107@ozlabs.ru> <874nf8cidj.fsf@blackfin.pond.sub.org> <516BCD71.9070905@ozlabs.ru> <516BDBFB.5070602@ozlabs.ru> <87vc7ovtnm.fsf@blackfin.pond.sub.org> <516BFAA7.1000208@ozlabs.ru> <87zjwzu6tl.fsf@blackfin.pond.sub.org> <516C83AE.9040800@ozlabs.ru> <87d2tuetoj.fsf@blackfin.pond.sub.org> <20130416115107.GF2825@dhcp-200-207.str.redhat.com> Date: Tue, 16 Apr 2013 14:12:15 +0200 In-Reply-To: <20130416115107.GF2825@dhcp-200-207.str.redhat.com> (Kevin Wolf's message of "Tue, 16 Apr 2013 13:51:07 +0200") Message-ID: <87li8i1xpc.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH] pixman: remove -Wredundand-decls List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: Peter Maydell , Alexey Kardashevskiy , qemu-devel@nongnu.org, Blue Swirl , Gerd Hoffmann , Stefan Hajnoczi , David Gibson Kevin Wolf writes: > Am 16.04.2013 um 11:00 hat Markus Armbruster geschrieben: >> Alexey Kardashevskiy writes: >> >> > On 04/16/2013 01:55 AM, Markus Armbruster wrote: >> >> Alexey Kardashevskiy writes: >> >> >> >>> On 04/15/2013 10:57 PM, Markus Armbruster wrote: >> >>>> Alexey Kardashevskiy writes: >> >>>> >> >>>>> On 04/15/2013 08:01 PM, Peter Maydell wrote: >> >>>>>> On 15 April 2013 10:50, Alexey Kardashevskiy wrote: >> >>>>>>> /home/alexey/pcipassthru/qemu-impreza/../lib4qemu/usr/include/assert.h:67:13: >> >>>>>>> error: redundant redeclaration of '__assert_fail' >> >>>>>>> [-Werror=redundant-decls] >> >>>>>>> /home/alexey/pcipassthru/qemu-impreza/../lib4qemu/usr/include/assert.h:67:13: >> >>>>>>> note: previous declaration of '__assert_fail' was here >> >>>>>>> /home/alexey/pcipassthru/qemu-impreza/../lib4qemu/usr/include/assert.h:72:13: >> >>>>>>> error: redundant redeclaration of '__assert_perror_fail' >> >>>>>>> [-Werror=redundant-decls] >> >>>>>> >> >>>>>> This copy of assert.h seems to be broken. The declarations >> >>>>>> should be guarded (by _ASSERT_H_DECLS in my system's copy). >> >>>>> >> >>>>> Debian? It uses eglibc which is fork (or clone?) of glibc. >> >>>>> >> >>>>>> If it's widespread we might have to work around this. >> >>>>> >> >>>>> It is in fedora 18 and glibc's git master branch. Why "if"? >> >>>> >> >>>> It's in Fedora 17, too, but I *don't* get a warning. Suspecting your >> >>>> compiler. --version? >> >>> >> >>> >> >>> powerpc64-linux-gcc 4.6.3, 4.7.2, 4.8.0, all the same. I'll try to >> >>> track it down tomorrow why it all works when host and target are the >> >>> same (pretty sure this is the cse) but I just do not get it... It is >> >>> just me who sees obvious error in assert.h which is caused by >> >>> -Wno-redundant-decls? Even if you do not hit this now, you will get >> >>> there eventually. >> >> >> >> I don't doubt your gcc+libc is in error. I just don't want to lose a >> >> useful warning because of that. >> >> >> >> Workaround: configure --disable-werror >> > >> > This workaround does NOT work if pragmas used. "#pragma GCC diagnostic >> > error "-Wredundant-decls"" re-enables warnings as errors. >> >> Bummer. Could you try the appended patch? >> >> diff --git a/configure b/configure >> index 0788e27..41097a2 100755 >> --- a/configure >> +++ b/configure >> @@ -3244,8 +3244,10 @@ fi >> >> pragma_disable_unused_but_set=no >> cat > $TMPC << EOF >> +#pragma GCC diagnostic push >> #pragma GCC diagnostic ignored "-Wunused-but-set-variable" >> #pragma GCC diagnostic ignored "-Wstrict-prototypes" >> +#pragma GCC diagnostic pop > > Breaks gcc < 4.6, which doesn't have push/pop yet. The patch to configure makes sure push/pop works before we use it. When your gcc is too old, warnings aren't suppressed, and you may have to --disable-werror. I prefer that over breaking --disable-werror for everyone.