From patchwork Tue Apr 16 09:00:44 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 236867 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 68FC82C0109 for ; Tue, 16 Apr 2013 19:01:56 +1000 (EST) Received: from localhost ([::1]:52311 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US1lx-0000Q5-QB for incoming@patchwork.ozlabs.org; Tue, 16 Apr 2013 05:01:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37772) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US1l0-00080v-4u for qemu-devel@nongnu.org; Tue, 16 Apr 2013 05:00:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1US1ky-0001Rn-0a for qemu-devel@nongnu.org; Tue, 16 Apr 2013 05:00:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39590) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US1kx-0001Ra-92 for qemu-devel@nongnu.org; Tue, 16 Apr 2013 05:00:51 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r3G90kQM025226 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 16 Apr 2013 05:00:47 -0400 Received: from blackfin.pond.sub.org (ovpn-116-78.ams2.redhat.com [10.36.116.78]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r3G90jbi012020; Tue, 16 Apr 2013 05:00:46 -0400 Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 0AF33200B3; Tue, 16 Apr 2013 11:00:45 +0200 (CEST) From: Markus Armbruster To: Alexey Kardashevskiy References: <1365993073-4659-1-git-send-email-aik@ozlabs.ru> <8761zofezy.fsf@blackfin.pond.sub.org> <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> Date: Tue, 16 Apr 2013 11:00:44 +0200 In-Reply-To: <516C83AE.9040800@ozlabs.ru> (Alexey Kardashevskiy's message of "Tue, 16 Apr 2013 08:48:14 +1000") Message-ID: <87d2tuetoj.fsf@blackfin.pond.sub.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: Peter Maydell , qemu-devel@nongnu.org, Blue Swirl , Gerd Hoffmann , Stefan Hajnoczi , David Gibson Subject: Re: [Qemu-devel] [PATCH] pixman: remove -Wredundand-decls X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 int main(void) { return 0; diff --git a/coroutine-ucontext.c b/coroutine-ucontext.c index 867a662..4bf2cde 100644 --- a/coroutine-ucontext.c +++ b/coroutine-ucontext.c @@ -169,6 +169,7 @@ Coroutine *qemu_coroutine_new(void) #ifdef CONFIG_VALGRIND_H #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE /* Work around an unused variable in the valgrind.h macro... */ +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #endif static inline void valgrind_stack_deregister(CoroutineUContext *co) @@ -176,7 +177,7 @@ static inline void valgrind_stack_deregister(CoroutineUContext *co) VALGRIND_STACK_DEREGISTER(co->valgrind_stack_id); } #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE -#pragma GCC diagnostic error "-Wunused-but-set-variable" +#pragma GCC diagnostic pop #endif #endif diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h index b032f52..882e2a3 100644 --- a/include/ui/qemu-pixman.h +++ b/include/ui/qemu-pixman.h @@ -8,11 +8,12 @@ /* pixman-0.16.0 headers have a redundant declaration */ #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wredundant-decls" #endif #include #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE -#pragma GCC diagnostic error "-Wredundant-decls" +#pragma GCC diagnostic pop #endif #include "qemu/typedefs.h" diff --git a/ui/gtk.c b/ui/gtk.c index 1e105e2..c2c6e38 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -38,11 +38,12 @@ #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE /* Work around an -Wstrict-prototypes warning in GTK headers */ +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-prototypes" #endif #include #ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE -#pragma GCC diagnostic error "-Wstrict-prototypes" +#pragma GCC diagnostic pop #endif