From owner-freebsd-bugs@FreeBSD.ORG Thu Aug 22 11:07:37 2013 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 68D25DFF for ; Thu, 22 Aug 2013 11:07:37 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id 2B04722D4 for ; Thu, 22 Aug 2013 11:07:36 +0000 (UTC) Received: from c122-106-156-23.carlnfd1.nsw.optusnet.com.au (c122-106-156-23.carlnfd1.nsw.optusnet.com.au [122.106.156.23]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id 346B1783C5A; Thu, 22 Aug 2013 21:07:25 +1000 (EST) Date: Thu, 22 Aug 2013 21:07:16 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Jilles Tjoelker Subject: Re: kern/181439: [headers] sys/wait.h is not enough to use waitid(), but kind of should be. In-Reply-To: <201308212240.r7LMe1DV060210@freefall.freebsd.org> Message-ID: <20130822205318.P1594@besplex.bde.org> References: <201308212240.r7LMe1DV060210@freefall.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=YYGEuWhf c=1 sm=1 tr=0 a=ebeQFi2P/qHVC0Yw9JDJ4g==:117 a=PO7r1zJSAAAA:8 a=M6qay9qaaSsA:10 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=qn8c7nGIIGgA:10 a=Y4XTmd9sUAb5-LYJkpkA:9 a=CjuIK1q_8ugA:10 Cc: freebsd-bugs@FreeBSD.org X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Aug 2013 11:07:37 -0000 On Wed, 21 Aug 2013, Jilles Tjoelker wrote: > In PR kern/181439, you wrote: > > [ does not define siginfo_t] > > POSIX says that shall define siginfo_t and may make visible > all symbols from . This was even in the 2001 version (under an XSI extension) (waitid was there too). It has other bugs like requiring struct rusage (for wait3() and wait4() in . I think struct rusage is a BSD extension. BSD never declared struct rusage in . FreeBSD was compatible with POSIX in 2001 because these bugs were only in the XSI part. > This means that POSIX requires the application to #include > explicitly if it wants to use the constants like SIGCHLD and CLD_EXITED. > Therefore, I expect most applications to need an explicit #include > anyway. > > To minimize namespace pollution, it would be best to create a new header > that defines siginfo_t and include it from and , > or to duplicate the definition. > > Adding the #include to would be simpler. If this is the way > it should work, then it would be best to try to change POSIX to allow It's simpler and more broken to specify that every header shall include every header. "May make visible" is of almost equally low quality, since it allows simpler implementations without simplifing applications. Bruce