From owner-svn-src-all@FreeBSD.ORG Thu Mar 26 02:14:19 2015 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7D0841F3; Thu, 26 Mar 2015 02:14:19 +0000 (UTC) Received: from mail109.syd.optusnet.com.au (mail109.syd.optusnet.com.au [211.29.132.80]) by mx1.freebsd.org (Postfix) with ESMTP id 3DEE67D1; Thu, 26 Mar 2015 02:14:18 +0000 (UTC) Received: from c211-30-166-197.carlnfd1.nsw.optusnet.com.au (c211-30-166-197.carlnfd1.nsw.optusnet.com.au [211.30.166.197]) by mail109.syd.optusnet.com.au (Postfix) with ESMTPS id B14B6D67098; Thu, 26 Mar 2015 13:14:06 +1100 (AEDT) Date: Thu, 26 Mar 2015 13:14:05 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: "Pedro F. Giffuni" Subject: Re: svn commit: r280636 - head/include In-Reply-To: <201503252153.t2PLrInc025854@svn.freebsd.org> Message-ID: <20150326130403.W993@besplex.bde.org> References: <201503252153.t2PLrInc025854@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=A5NVYcmG c=1 sm=1 tr=0 a=KA6XNC2GZCFrdESI5ZmdjQ==:117 a=PO7r1zJSAAAA:8 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=v8WTfNS-EKsu7SCtGhkA:9 a=CjuIK1q_8ugA:10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 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: Thu, 26 Mar 2015 02:14:19 -0000 On Wed, 25 Mar 2015, Pedro F. Giffuni wrote: > Log: > Temporarily revert 280458. > > GCC is still carries an old version of cdefs.h which doesn't > accept multiple parameters for the nonnull attribute. > > Since this issue probably affects many ports in the tree > we will revert it for now until gcc gets fixed. Note that sys/cdefs.h is supposed to work with any version of gcc back to gcc-1, and does mostly work back to at least gcc-2.95. The whole point of sys/cdefs.h is to provide compatibity macros for old and other non-default compilers. Standard compilers don't even have __attribute__(()). So no changes in future versions of gcc will fix the previous commit. The ifdefs for __nonnull() seem to be broken. They assume that all versions of gcc >= 3.3 support the same semantics for __nonnull() and that no non-gcc compiler supports the __nonnull__() attribute. Non-gcc compilers like clang get this by pretending to be gcc. Non-gcc compilers like icc tend to not get this by not pretending to be gcc. __nonnull__() is one of the few attributes that is only a hint, so definining it as nothing when it is not known to work is correct. Bruce