Date: Tue, 3 May 2016 15:52:56 +1000 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Pedro Giffuni <pfg@freebsd.org> Cc: John Baldwin <jhb@freebsd.org>, "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r298933 - in head: share/man/man9 sys/amd64/include sys/dev/acpica sys/dev/drm2 sys/dev/drm2/i915 sys/kern sys/sys sys/x86/acpica sys/x86/x86 Message-ID: <20160503152502.A939@besplex.bde.org> In-Reply-To: <c30f7a5a-1185-755d-ccf9-df7d071e3417@FreeBSD.org> References: <201605021800.u42I0cjK084243@repo.freebsd.org> <4F040E00-AB92-4D32-99F5-9BCB02578DC0@gmail.com> <2097917.RNSsKXUJ7U@ralph.baldwin.cx> <c30f7a5a-1185-755d-ccf9-df7d071e3417@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2 May 2016, Pedro Giffuni wrote: > > On 05/02/16 15:52, John Baldwin wrote: >> On Monday, May 02, 2016 11:45:41 AM Ngie Cooper wrote: >>> >>>> On May 2, 2016, at 11:00, John Baldwin <jhb@FreeBSD.org> wrote: >>>> >>>> Author: jhb >>>> [... excessive quoting trimmed] >>>> New Revision: 298933 >>>> URL: https://svnweb.freebsd.org/changeset/base/298933 >>>> >>>> Log: >>>> Add a new bus method to fetch device-specific CPU sets. >>>> [... excessive quoting trimmed] >>>> kernel >>> >>> This broke the build with gcc: >>> https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc/1211/ >> >> I saw. What is odd though is that my tinderbox builds all passed. This >> might >> be due to the recent howmany() changes since _bitset.h only needed >> <sys/types.h> >> before but now needs <sys/param.h> (which is borderline to being pointless >> for >> a _foo.h header). > > TBH, I thought so too, but I avoided applying such changes to headers, > and I haven't touched _bitset.h, _foo.h headers cannot use howmany() due to namespace pollution. _bitset.h was already broken, unless it is supposed to be kernel-only -- it uses howmany(). It is kernel-only according to its documention -- bitset is only documented in kernel manpages (in a single unreadable one than is linked ad nauseum). It is otherwise fairly clean. It defines the symbols BITSET_DEFINE, BITSET_T_INITIALIZER, and BITSET_SET in the application namespace This is not completely clean for a _foo.h header. All other BITSET* macros are already in bitset.h I think only BITSET_DEFINE should be in _bitset.h (for use declarations in other headers). select.h avoids this problem by defining its own howmany() macro. This seems to be correct except for the bogus ifdef around the private macro. This ifdef is a little more than a style bug (verboseness) -- it breaks detection of other definitions that might be different. Lexical differences wouldn't matter, but it is easier to never have them. Old versions of select polluted <sys.types.h>. The select macros just used howmany(). howmany() was in <sys/types.h> too. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160503152502.A939>