Skip site navigation (1)Skip section navigation (2)
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>