Kevin Wolf <kw...@redhat.com> writes:

> Am 16.04.2013 um 11:00 hat Markus Armbruster geschrieben:
>> Alexey Kardashevskiy <a...@ozlabs.ru> writes:
>> 
>> > 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.
>> 
>> 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
>
> Breaks gcc < 4.6, which doesn't have push/pop yet.

The patch to configure makes sure push/pop works before we use it.  When
your gcc is too old, warnings aren't suppressed, and you may have to
--disable-werror.  I prefer that over breaking --disable-werror for
everyone.

Reply via email to