From owner-svn-src-head@FreeBSD.ORG Mon Jan 2 02:14:11 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 967E1106564A; Mon, 2 Jan 2012 02:14:11 +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 521198FC0C; Mon, 2 Jan 2012 02:14:11 +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 q022E87G099845; Sun, 1 Jan 2012 21:14:08 -0500 (EST) (envelope-from das@FreeBSD.ORG) Received: (from das@localhost) by zim.MIT.EDU (8.14.5/8.14.2/Submit) id q022E8P3099844; Sun, 1 Jan 2012 21:14:08 -0500 (EST) (envelope-from das@FreeBSD.ORG) Date: Sun, 1 Jan 2012 21:14:08 -0500 From: David Schultz To: Ed Schouten Message-ID: <20120102021408.GA99780@zim.MIT.EDU> Mail-Followup-To: Ed Schouten , Steve Kargl , Andreas Tobler , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201112291441.pBTEfI8l060127@svn.freebsd.org> <4EFCA6A6.6080103@FreeBSD.org> <20111229183213.GK1895@hoeg.nl> <20111229184934.GA47885@troutmask.apl.washington.edu> <20111229192359.GM1895@hoeg.nl> <20120101025422.GD94452@zim.MIT.EDU> <20120101092925.GZ1895@hoeg.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120101092925.GZ1895@hoeg.nl> Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, src-committers@FreeBSD.ORG, Andreas Tobler , Steve Kargl Subject: Re: svn commit: r228955 - head/include X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jan 2012 02:14:11 -0000 On Sun, Jan 01, 2012, Ed Schouten wrote: > David, > > * David Schultz , 20120101 03:54: > > I'm out of town and don't remember the details of this, but is there a > > reason we couldn't simply have an appropriate #ifdef that uses > > __attribute((__noreturn__)) instead of [[noreturn]]? We have plenty > > of ifdefs in the tree already to work around deficiencies in various > > compilers. Saying "it's the compiler's fault and we're not going to > > work around it" is a significant departure from historical precedent, > > and it punishes the wrong people. Easier than arguing with the GNU > > folks about fixing it, too... > > Right now GCC 4.7 is still an unreleased piece of software. If GCC 4.7 > was a released piece of software, I would of course agree that we should > add the workaround. > > The problem isn't that GCC 4.7 doesn't support [[noreturn]]. The problem > is that GCC only implements parts of C++11, yet it forces the compiler > into C++11 mode while bootstrapping. Even if we add a workaround for > this in sys/cdefs.h, we can likely never ever get rid of it. Because if > someone wants to install GCC 4.7 on a FreeBSD 14.0 box in 2020 to build > an old piece of software, he still needs the workaround. > > But there's nothing serious going on here. The issue is already > discussed in GCC Bugzilla and there is a patch that fixes the build. > Let's just wait to see what happens. Since we're talking about a development version of gcc, I agree. We should wait and see if they fix it. It wouldn't surprise me if we wind up needing some workarounds. After all, after well over a decade, we still have workarounds for gcc's (and clang's) lack of complete C99 support. I doubt the gcc developers are going to agree that they need to dot every "i" and cross every "t" before they declare C++11 support and define __cplusplus to be 201103.