Date: Fri, 4 Apr 2014 23:48:39 +0100 From: David Chisnall <theraven@FreeBSD.org> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: "FreeBSD-CURRENT@freebsd.org Current" <freebsd-current@freebsd.org> Subject: Re: Build failure due to block_abi.h Message-ID: <4396EF34-DFB3-4D2F-9BA1-00F05B5EC3EC@FreeBSD.org> In-Reply-To: <30EAFDFF-54AB-4318-95C6-F2BDC0329042@xcllnt.net> References: <30EAFDFF-54AB-4318-95C6-F2BDC0329042@xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Marcel, This error is a warning for me with gcc 4.7.3 when I try. With 4.2.1 in = the tree, it appears to be silenced by something (or possibly we're = using the native blocks code path with gcc and clang doesn't emit that = warning in non-blocks mode). We could pull out the structure = definitions - this is what I've done in the GNUstep versions of these = macros, which provide separate macros for declaring the type. It will = clutter the code a bit, but if it's not possible to silence the warnings = with your compiler then I can make that change. Unfortunately, the warning actually is spurious here - the structure = really is expected to be only for the scope of the function, because any = compiler that can actually generate those structure in a useful way will = give the type a different internal name. =20 I'll try to send you a patch to test tomorrow - in the meantime, = removing the -Werror should make it build. Unfortunately, gcc = (especially 4.2) doesn't provide very fine-grained control over warnings = and it doesn't seem to be possible (or, at least, not documented) to = disable the ones that are part of their default set. =20 David On 4 Apr 2014, at 18:42, Marcel Moolenaar <marcel@xcllnt.net> wrote: > David, >=20 > The definition of DECLARE_BLOCK seems to trip over GCC 4.2.1 here > at Juniper. This is how we run the compiler: >=20 > = /volume/fwtools/gcc/jnpr/4.2.1/amd64-juniper-junos.5/bin/amd64-juniper-jun= os-gcc -O2 -pipe -I/b/marcelm/fbsd-head/src/lib/libc/include = -I/b/marcelm/fbsd-head/src/lib/libc/../../include = -I/b/marcelm/fbsd-head/src/lib/libc/amd64 -DNLS -D__DBINTERFACE_PRIVATE = -I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/gdtoa = -I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/libc-vis -DINET6 = -I/b/marcelm/fbsd-head/obj/amd64/lib/libc = -I/b/marcelm/fbsd-head/src/lib/libc/resolv -D_ACL_PRIVATE = -DPOSIX_MISTAKE = -I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/jemalloc/include = -I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/tzcode/stdtime = -I/b/marcelm/fbsd-head/src/lib/libc/stdtime = -I/b/marcelm/fbsd-head/src/lib/libc/locale -DBROKEN_DES -DPORTMAP = -DDES_BUILTIN -I/b/marcelm/fbsd-head/src/lib/libc/rpc -DNS_CACHING = -DSYMBOL_VERSIONING -D__ELF__ -Dunix -D__unix -D__unix__ = -D__FreeBSD__=3D9 --sysroot = /volume/sisyphus/occam/sysroot/projects_tp5/20131031.611483/amd64 = -fno-builtin-printf -g -nostdinc = -isystem/b/marcelm/fbsd-head/obj/stage/amd64/usr/include = -isystem/b/marcelm/fbsd-head/obj/stage/amd64/include -std=3Dgnu99 = -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized = -Wno-pointer-sign -I/b/marcelm/fbsd-head/src/lib/libutil = -I/b/marcelm/fbsd-head/src/lib/msun/src = -I/b/marcelm/fbsd-head/src/lib/msun/x86 -c = /b/marcelm/fbsd-head/src/lib/libc/stdlib/atexit.c -o atexit.o > whatever set of flags we use here at Juniper: >=20 > This is the error: >=20 > Building /b/marcelm/fbsd-head/obj/amd64/lib/libc/atexit.o > cc1: warnings being treated as errors > /b/marcelm/fbsd-head/src/lib/libc/stdlib/atexit.c:144: warning: = anonymous struct declared inside parameter list > /b/marcelm/fbsd-head/src/lib/libc/stdlib/atexit.c:144: warning: its = scope is only this definition or declaration, which is probably not what = you want > *** Error code 1 >=20 > This hurdle is a bit higher than the hurdles I normally run into > when syncing with ^/head, so I could use your expertise. >=20 > We need to continue to be able to build the sources with compilers > outside of the tree as much as possible and I haven't found a way > yet (one I don't dislike to be precise) to get this blocks stuff > to compile. It's a huge blocker right now. >=20 > Thanks, >=20 > --=20 > Marcel Moolenaar > marcel@xcllnt.net >=20 >=20
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4396EF34-DFB3-4D2F-9BA1-00F05B5EC3EC>