cvs commit: src/sys/netinet icmp6.h ip6.h src/sys/netinet6 in6.h

Bruce Evans bde at zeta.org.au
Sat Oct 25 22:38:55 PDT 2003


On Sun, 26 Oct 2003, Garrett Wollman wrote:

> <<On Sat, 25 Oct 2003 22:00:59 -0700, Kris Kennaway <kris at obsecurity.org> said:
>
> > On Sun, Oct 26, 2003 at 12:06:36AM -0400, Joe Marcus Clarke wrote:
>
> >> > I haven't checked whether this commit fixes them, although looking at
> >> > it now I'm not sure it does.
> >> =20
> >> netinet6/in6.h (and netinet/in.h) requires sys/types.h to be included
> >> before it.  If you don't, you'd see these errors.
>
> > Odd..I guess this has not actually been a previous requirement on FreeBSD.
>
> This sounds like a POSIX-compliance regression.  POSIX does not permit
> <sys/types.h> to be required for Standard Headers (of which
> <netinet/in.h> is one).

I think the full explanation is:
- <sys/types.h> used to be a prerequisite for <netinet/in.h>.
- mike (Mike Barcroft) POSIXified many files.  BTW, where is mike?
  <netinet/in.h> and <arpa/inet.h> were among the first ones done
  since they were relatively simple but compicated enough to serve
  as good examples for others.  In particular, some uintN_t types
  are required for use of <netinet/in.h> are are specified by POSIX
  to be declared there, so they are now declared there.  OTOH, the
  u_intN_t types are BSD-specific and are only declared in
  <sys/types.h>.
- the closure of the changes for <netinet/in.h> apparently included
  some KAME headers.
- ports began to rely on the POSIXification.
- undoing the POSIXification broke ports.

Bruce


More information about the cvs-src mailing list