On 04/16/2013 08:48 AM, Alexey Kardashevskiy wrote:
On 04/16/2013 01:55 AM, Markus Armbruster wrote:
Alexey Kardashevskiy <a...@ozlabs.ru> writes:
On 04/15/2013 10:57 PM, Markus Armbruster wrote:
Alexey Kardashevskiy <a...@ozlabs.ru> writes:
On 04/15/2013 08:01 PM, Peter Maydell wrote:
On 15 April 2013 10:50, Alexey Kardashevskiy <a...@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.
Kind of offtopic but still...
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.
Does anyone know the way to tell gcc that libc headers are not at
/usr/include but somewhere else?
[aik@aik ~]$ cp /usr/include/assert.h ./
[aik@aik ~]$
[aik@aik ~]$ cat a.c
#pragma GCC diagnostic error "-Wredundant-decls"
#ifdef USEMINE
#include "assert.h"
#include "assert.h"
#else
#include <assert.h>
#include <assert.h>
#endif
int main(int argc, char **argv){ return 0; }
[aik@aik ~]$
[aik@aik ~]$ gcc a.c -o a
[aik@aik ~]$ gcc a.c -o a -DUSEMINE
In file included from a.c:5:0:
assert.h:68:13: error: redundant redeclaration of ‘__assert_fail’
[-Werror=redundant-decls]
In file included from a.c:4:0:
assert.h:68:13: note: previous declaration of ‘__assert_fail’ was here
In file included from a.c:5:0:
assert.h:73:13: error: redundant redeclaration of ‘__assert_perror_fail’
[-Werror=redundant-decls]
In file included from a.c:4:0:
assert.h:73:13: note: previous declaration of ‘__assert_perror_fail’ was here
In file included from a.c:5:0:
assert.h:80:13: error: redundant redeclaration of ‘__assert’
[-Werror=redundant-decls]
In file included from a.c:4:0:
assert.h:80:13: note: previous declaration of ‘__assert’ was here
cc1: some warnings being treated as errors
[aik@aik ~]$
--
Alexey