On Fri, 2015-01-16 at 14:19 +0000, Daniel P. Berrange wrote:
On Fri, Jan 16, 2015 at 01:58:27PM +0000, Ian Campbell wrote:
> Hello,
>
> On Tue, 2015-01-13 at 17:00 +0000, Daniel P. Berrange wrote:
> > +# define VIR_WARNINGS_NO_PRINTF \
> > + _Pragma ("GCC diagnostic push") \
> > + _Pragma ("GCC diagnostic ignored
\"-Wsuggest-attribute=format\"")
>
> Xen automated tests are failing to build on all architectures with:
>
> util/virxml.c: In function 'catchRNGError':
> util/virxml.c:1094:9: error: unknown option after '#pragma GCC
diagnostic' kind [-Werror=pragmas]
>
> which I think must be down to one of these additions.
>
> (helpful of gcc not to print the unknown option in question!)
>
> test overview:
>
http://www.chiark.greenend.org.uk/~xensrcts/logs/33443/
> specific failure log:
>
http://www.chiark.greenend.org.uk/~xensrcts/logs/33443/build-amd64-libvir...
>
> We use Debian Wheezy's gcc, which is 4.6.3 AFAIK.
The configure logs show
checking whether C compiler handles -Wsuggest-attribute=const... yes
checking whether C compiler handles -Wsuggest-attribute=format... no
checking whether C compiler handles -Wsuggest-attribute=noreturn... yes
checking whether C compiler handles -Wsuggest-attribute=pure... yes
So, can someone with a Debian machine check if it helps to modify
_Pragma ("GCC diagnostic ignored
\"-Wsuggest-attribute=format\"")
To be just
_Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute\"")
I'm afraid it doesn't seem to. Specifically:
diff --git a/src/internal.h b/src/internal.h
index 9855c49..508f8b5 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -236,7 +236,7 @@
_Pragma ("GCC diagnostic ignored \"-Wcast-align\"")
# define VIR_WARNINGS_NO_PRINTF \
_Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored
\"-Wsuggest-attribute=format\"")
+ _Pragma ("GCC diagnostic ignored
\"-Wsuggest-attribute\"")
# define VIR_WARNINGS_RESET \
_Pragma ("GCC diagnostic pop")
Didn't help.
According to
https://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Warning-Options.html#Warning... the
valid -Wsuggest-attributes=FOO in that version are pure const and noreturn.
=format seems to have arrived in 4.8, FWIW.
Ian.