cvs commit: src/sys/sys cdefs.h src/include nl_types.h stdio.h

Warner Losh imp at
Wed Feb 1 10:56:54 PST 2006

From: Bakul Shah <bakul at>
Subject: Re: cvs commit: src/sys/sys cdefs.h src/include nl_types.h stdio.h 
Date: Wed, 01 Feb 2006 10:51:08 -0800

> > On Wed, Feb 01, 2006 at 10:25:28AM -0800, Bakul Shah wrote:
> > > > I'm actually surprised that make includes doesn't install the sys
> > > > directory as well, which would pick up the new sys/cdefs.h.  Does
> > > > 'make -f _includes' also exhibit the same problem?
> > >=20
> > > The bigger question is *why* does buildworld depend on
> > > /usr/include.
> > 
> > You have to compile native bootstrap tools (i.e. against /usr/include)
> > before you can build the rest of the world with "internal" headers.
> > If you don't do this bootstrap step, your buildworld won't work in all
> > upgrade cases.
> But look at this error message Steve Kargl posted:
> ===> games/fortune/strfile (obj,depend,all,install)
> cc -O2 -fno-strict-aliasing -pipe  -I/usr/obj/usr/src/tmp/legacy/usr/include -c
> /usr/src/games/fortune/strfile/strfile.c
> In file included from /usr/src/games/fortune/strfile/strfile.c:53:
> /usr/include/stdio.h:331: error: syntax error before "__format_arg"
> Is /usr/games/fortune is a build tool?  Even if /usr/includes
> is not consistent due to make includes, surely fortune
> shouldn't care since it includes only the "internal" headers?
> Internal meaning the ones in the target system.
> BTW, I have seen similar things in the past few weeks while
> doing buildworld and the only way to fix this was to do make
> includes.
> Anyway, if it is only build tools that rely on host includes,
> why do you need make includes at all?  If you do, that says
> that the build tools are relying on new stuff that they are
> supposed to help build and install.
> More generally don't the build tools need to have an even
> more stable environment?

The problem is that Steve Kargl had an pooched /usr/include.  He
updated part of it, but not all of it, evidence suggests.  In that
cross threaded environment, mismatches between different parts of the
tree can be bad.

strfile is a build tool.  It is used to build fortune and must be
built using the host's build environment.


More information about the cvs-src mailing list