From: Markus Armbruster <armbru@redhat.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: Peter Maydell <peter.maydell@linaro.org>,
qemu-devel@nongnu.org, Blue Swirl <blauwirbel@gmail.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH] pixman: remove -Wredundand-decls
Date: Tue, 16 Apr 2013 11:00:44 +0200 [thread overview]
Message-ID: <87d2tuetoj.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <516C83AE.9040800@ozlabs.ru> (Alexey Kardashevskiy's message of "Tue, 16 Apr 2013 08:48:14 +1000")
Alexey Kardashevskiy <aik@ozlabs.ru> writes:
> On 04/16/2013 01:55 AM, Markus Armbruster wrote:
>> Alexey Kardashevskiy <aik@ozlabs.ru> writes:
>>
>>> On 04/15/2013 10:57 PM, Markus Armbruster wrote:
>>>> Alexey Kardashevskiy <aik@ozlabs.ru> writes:
>>>>
>>>>> On 04/15/2013 08:01 PM, Peter Maydell wrote:
>>>>>> On 15 April 2013 10:50, Alexey Kardashevskiy <aik@ozlabs.ru> 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 <pixman.h>
#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 <gtk/gtk.h>
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
-#pragma GCC diagnostic error "-Wstrict-prototypes"
+#pragma GCC diagnostic pop
#endif
next prev parent reply other threads:[~2013-04-16 9:00 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-15 2:31 [Qemu-devel] [PATCH] pixman: remove -Wredundand-decls Alexey Kardashevskiy
2013-04-15 7:08 ` Markus Armbruster
2013-04-15 7:12 ` Alexey Kardashevskiy
2013-04-15 8:23 ` Markus Armbruster
2013-04-15 9:50 ` Alexey Kardashevskiy
2013-04-15 10:01 ` Peter Maydell
2013-04-15 10:40 ` Peter Maydell
2013-04-15 10:52 ` Alexey Kardashevskiy
2013-04-15 11:00 ` Peter Maydell
2013-04-15 11:08 ` Alexey Kardashevskiy
2013-04-15 11:14 ` Peter Maydell
2013-04-15 11:20 ` Alexey Kardashevskiy
2013-04-15 12:57 ` Markus Armbruster
2013-04-15 13:03 ` Alexey Kardashevskiy
2013-04-15 15:55 ` Markus Armbruster
2013-04-15 22:48 ` Alexey Kardashevskiy
2013-04-16 3:16 ` Alexey Kardashevskiy
2013-04-16 7:57 ` Markus Armbruster
2013-04-16 9:22 ` Paolo Bonzini
2013-04-16 10:29 ` Markus Armbruster
2013-04-16 10:54 ` Alexey Kardashevskiy
2013-04-16 11:12 ` Paolo Bonzini
2013-04-16 11:52 ` Markus Armbruster
2013-04-16 9:00 ` Markus Armbruster [this message]
2013-04-16 10:54 ` Alexey Kardashevskiy
2013-04-16 11:51 ` Kevin Wolf
2013-04-16 12:12 ` Markus Armbruster
2013-04-15 7:18 ` Peter Maydell
2013-04-15 7:26 ` Alexey Kardashevskiy
2013-04-15 7:30 ` Peter Maydell
2013-04-15 7:45 ` Alexey Kardashevskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d2tuetoj.fsf@blackfin.pond.sub.org \
--to=armbru@redhat.com \
--cc=aik@ozlabs.ru \
--cc=blauwirbel@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=kraxel@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).