From owner-svn-src-all@FreeBSD.ORG Mon Dec 12 19:25:42 2011 Return-Path: Delivered-To: svn-src-all@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 36F781065672; Mon, 12 Dec 2011 19:25:42 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from zim.MIT.EDU (ZIM.MIT.EDU [18.95.3.101]) by mx1.freebsd.org (Postfix) with ESMTP id B0FB78FC12; Mon, 12 Dec 2011 19:25:38 +0000 (UTC) Received: from zim.MIT.EDU (localhost [127.0.0.1]) by zim.MIT.EDU (8.14.5/8.14.2) with ESMTP id pBCJPbTS053077; Mon, 12 Dec 2011 14:25:37 -0500 (EST) (envelope-from das@FreeBSD.ORG) Received: (from das@localhost) by zim.MIT.EDU (8.14.5/8.14.2/Submit) id pBCJPbfx053076; Mon, 12 Dec 2011 14:25:37 -0500 (EST) (envelope-from das@FreeBSD.ORG) Date: Mon, 12 Dec 2011 14:25:37 -0500 From: David Schultz To: David Chisnall Message-ID: <20111212192537.GA52939@zim.MIT.EDU> Mail-Followup-To: David Chisnall , Andreas Tobler , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201112072117.pB7LHoaL055972@svn.freebsd.org> <4EE120D7.10903@FreeBSD.org> <4EE51CA3.9060809@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, src-committers@FreeBSD.ORG, Andreas Tobler Subject: Re: svn commit: r228330 - in head: include sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Dec 2011 19:25:42 -0000 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 . 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.