Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 May 2016 19:54:20 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Alan Somers <asomers@freebsd.org>, Peter Wemm <peter@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r300557 - head/usr.sbin/apmd
Message-ID:  <20160526175420.GA31199@stack.nl>
In-Reply-To: <2084098.Ir36lcS1Gf@ralph.baldwin.cx>
References:  <201605240315.u4O3FkMt001717@repo.freebsd.org> <CAOtMX2jU=GNKbGUeMrSHZsxd8GLe9gd-ycYZS8ST_85%2Bai%2BJBA@mail.gmail.com> <2084098.Ir36lcS1Gf@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, May 24, 2016 at 08:52:32AM -0700, John Baldwin wrote:
> On Monday, May 23, 2016 09:24:41 PM Alan Somers wrote:
> > On Mon, May 23, 2016 at 9:15 PM, Peter Wemm <peter@freebsd.org> wrote:

> > > Author: peter
> > > Date: Tue May 24 03:15:46 2016
> > > New Revision: 300557
> > > URL: https://svnweb.freebsd.org/changeset/base/300557

> > > Log:
> > >   It seems <sys/types.h> is a new prerequisite for <bitstring.h> after
> > >   r300539. Attempt to fix the build for i386.

> > > Modified:
> > >   head/usr.sbin/apmd/apmd.c
> > >   head/usr.sbin/apmd/apmdlex.l
> > >   head/usr.sbin/apmd/apmdparse.y

> > Are you sure this is necessary, even after 300544?

> Actually, we try to avoid nested includes when possible for userland,
> so I'd be inclined to drop the <sys/types.h> nested include and just
> add <sys/types.h> to the places that need it.  Userland code in the
> base system is supposed to have <sys/types.h> or <sys/param.h> as the
> first #include anyway (which apmd was not following), so any fixes to
> userland are probably style fixes anyway.

This is traditional BSD convention, but headers specified by POSIX work
differently. POSIX headers can be included alone, so files that only
include POSIX headers rarely need #include <sys/types.h>. This often
causes some ugliness in the header file to use hidden names for things
to reduce namespace pollution.

Since <bitstring.h> is not specified by POSIX, it is not required to
work without prerequisites.

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160526175420.GA31199>