svn commit: r260311 - in head/contrib: gcc gcc/cp gcc/doc gcclibs/include gcclibs/libiberty

Tijl Coosemans tijl at FreeBSD.org
Sun Jan 5 11:46:07 UTC 2014


On Sun, 5 Jan 2014 00:43:28 +0000 (UTC) Pedro F. Giffuni wrote:
> Author: pfg
> Date: Sun Jan  5 00:43:28 2014
> New Revision: 260311
> URL: http://svnweb.freebsd.org/changeset/base/260311
> 
> Log:
>   gcc: Add support for Apple's Block extension
>   
>   Block objects [1] are a C-level syntactic and runtime feature. They
>   are similar to standard C functions, but in addition to executable
>   code they may also contain variable bindings to automatic (stack)
>   or managed (heap) memory. A block can therefore maintain a set of
>   state (data) that it can use to impact behavior when executed.
>   
>   This port is based on Apple's GCC 5646 with some bugfixes from
>   Apple GCC 5666.3. It has some small differences with the support
>   in clang, which remains the recommended compiler.
>   
>   Perhaps the most notable difference is that in GCC that __block
>   is not actually a keyword, but a macro. There will be workaround
>   for this issue in a near future. Other issues can be consulted in
>   the clang documentation [2]
>   
>   For better compatiblity with Apple's GCC and llvm-gcc some related
>   fixes and features from Apple have been included. Support for the
>   non-standard nested functions in GCC is now off by default.

Some ports use nested functions.


More information about the svn-src-all mailing list