On 15 April 2013 08:26, Alexey Kardashevskiy <a...@ozlabs.ru> wrote: > On 04/15/2013 05:18 PM, Peter Maydell wrote: >> >> On 15 April 2013 03:31, Alexey Kardashevskiy <a...@ozlabs.ru> wrote: >>> >>> The assert.h header file from Fedora18 does not have #ifdef-#endif >>> brackets around __assertXXXX function so it cannot compile with >>> the -Wredundant-decls switch on. >>> >>> Some Linux distributions (such as Debian Wheezy) still do have those >>> brackets arounb __assertXXXX functions (#ifndef _ASSERT_H_DECLS) but >>> the version of assert.h on http://sourceware.org/git/?p=glibc.git does >>> not >>> so we should not be using -Wredundant-decls. >>> >>> The patch removes it. >> >> >> This commit message seems to be missing any mention of >> which versions of pixman this change breaks and why >> it's OK now to break compiling against them... > > > > The change does not _break_ anything.
The change breaks the fix that the code was put in to deal with, ie that pixman-0.16's header files generate warnings, which the default development qemu will turn into errors with -Werror, which means we won't compile. > The second removed chunk in the patch is the problem as it: > 1) enables -Wredundant-decls even if it was not enabled before; > 2) makes -Wredundant-decls an error, not just a warning. This is because not all versions of gcc have the push/pop warning pragma. > Default assert.h shipped with Fedora Core 18 (pretty recent and popular > distribution, I would say) cannot compile with -Wredundant-decls as an error This appears to be a bug in Fedora. I guess the correct workaround for that bug is going to be either: * wrap assert.h the same way we wrap pixman.h * drop -Wredundant-decls :-( -- PMM