svn commit: r228330 - in head: include sys/sys

David Schultz das at FreeBSD.ORG
Mon Dec 12 19:25:42 UTC 2011


On Sun, Dec 11, 2011, David Chisnall wrote:
> On 11 Dec 2011, at 21:12, Andreas Tobler wrote:
> 
> > As far as I understand, GCC does not support this attribute [[noreturn]] yet. But it defines both, __cplusplus and __cplusplus=201103L. On gcc-4.7 __cplusplus=201103L is the default when we build libstdc++.
> 
> Advertising C++11 compatibility and then not supporting fairly simple C++11 features seems like a pretty major GCC bug.  
> 
> > So I think we have to extend the check as below or we can reorder the defines that GNUC is before the __cplusplus &&  __cplusplus>= 201103L.
> 
> I'd rather prefer the standard version to the non-standard version, but maybe we can add an extra check to see if your compiler incompetent.

The reality is that none of the open source compilers even fully
support C99.  We try to make sure the FreeBSD headers don't blow
up with other compilers, although some of the support for the
Intel compiler and ancient versions of gcc has rotted.  It is ugly
at times, but many of the compiler-specific details are abstracted
away in macros in <sys/cdefs.h>.

Note that for the POSIX/XSI/C standards, we actually define our
own visibility macros, because the standard ones are such a mess.
We will presumably need one for C1X soon.


More information about the svn-src-head mailing list