From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35792) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1URwO6-0002PG-TT for qemu-devel@nongnu.org; Mon, 15 Apr 2013 23:16:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1URwO5-0003AK-LP for qemu-devel@nongnu.org; Mon, 15 Apr 2013 23:16:54 -0400 Received: from mail-qe0-f50.google.com ([209.85.128.50]:64289) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1URwO5-0003AA-GV for qemu-devel@nongnu.org; Mon, 15 Apr 2013 23:16:53 -0400 Received: by mail-qe0-f50.google.com with SMTP id a11so27364qen.9 for ; Mon, 15 Apr 2013 20:16:52 -0700 (PDT) Message-ID: <516CC295.8010505@ozlabs.ru> Date: Tue, 16 Apr 2013 13:16:37 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1365993073-4659-1-git-send-email-aik@ozlabs.ru> <8761zofezy.fsf@blackfin.pond.sub.org> <516BA87A.2020107@ozlabs.ru> <874nf8cidj.fsf@blackfin.pond.sub.org> <516BCD71.9070905@ozlabs.ru> <516BDBFB.5070602@ozlabs.ru> <87vc7ovtnm.fsf@blackfin.pond.sub.org> <516BFAA7.1000208@ozlabs.ru> <87zjwzu6tl.fsf@blackfin.pond.sub.org> <516C83AE.9040800@ozlabs.ru> In-Reply-To: <516C83AE.9040800@ozlabs.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH] pixman: remove -Wredundand-decls List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: Peter Maydell , qemu-devel@nongnu.org, Blue Swirl , Gerd Hoffmann , Stefan Hajnoczi , David Gibson On 04/16/2013 08:48 AM, Alexey Kardashevskiy wrote: > On 04/16/2013 01:55 AM, Markus Armbruster wrote: >> Alexey Kardashevskiy writes: >> >>> On 04/15/2013 10:57 PM, Markus Armbruster wrote: >>>> Alexey Kardashevskiy writes: >>>> >>>>> On 04/15/2013 08:01 PM, Peter Maydell wrote: >>>>>> On 15 April 2013 10:50, Alexey Kardashevskiy 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 #include #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