qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Alexey Kardashevskiy <aik@ozlabs.ru>,
	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:22:33 +0200	[thread overview]
Message-ID: <516D1859.5040703@redhat.com> (raw)
In-Reply-To: <87r4ianc11.fsf@blackfin.pond.sub.org>

Il 16/04/2013 09:57, Markus Armbruster ha scritto:
>>
>> I think this is just beautiful. Fedora18, x86_64, NO cross
>> compiler. gcc does not apply -Wredundant-decls to /usr/include/* but
>> does it for all other headers and in the case of cross compilation I
>> hit this case.

'-Wsystem-headers'
     Print warning messages for constructs found in system header files.
     Warnings from system headers are normally suppressed, on the
     assumption that they usually do not indicate real problems and
     would only make the compiler output harder to read.

>> Does anyone know the way to tell gcc that libc headers are not at
>> /usr/include but somewhere else?

I think this helps:

'--sysroot=DIR'
     Use DIR as the logical root directory for headers and libraries.
     For example, if the compiler normally searches for headers in
     '/usr/include' and libraries in '/usr/lib', it instead searches
     'DIR/usr/include' and 'DIR/usr/lib'.

but you shouldn't need it.  Just configure your GCC with
--with-sysroot=/foo and it should just work.

Also:

> This workaround does NOT work if pragmas used. "#pragma GCC diagnostic
> error "-Wredundant-decls"" re-enables warnings as errors.

The solution is to use push/pop like this:

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"

Untested, feel free to resubmit with my Signed-off-by.

Paolo

  reply	other threads:[~2013-04-16  9:22 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 [this message]
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
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=516D1859.5040703@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=aik@ozlabs.ru \
    --cc=armbru@redhat.com \
    --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).