How to fix this in 5.1-REL??

Kevin Oberman oberman at
Tue Nov 25 08:57:16 PST 2003

> Date: Tue, 25 Nov 2003 17:47:29 +0300
> From: Odhiambo Washington <wash at>
> --+g7M9IMkV8truYOl
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: inline
> Content-Transfer-Encoding: quoted-printable
> * Kevin Oberman <oberman at> [20031125 02:39]: wrote:
> > > Date: Sat, 22 Nov 2003 06:07:03 -0800
> > > From: Kris Kennaway <kris at>
> > > Sender: owner-freebsd-current at
> > >=20
> > >=20
> > > --nVMJ2NtxeReIH9PS
> > > Content-Type: text/plain; charset=3Dus-ascii
> > > Content-Disposition: inline
> > >=20
> > > On Sat, Nov 22, 2003 at 03:16:06PM +0300, Odhiambo Washington wrote:
> > > >  I end up with the following when I run `make world` on  5.1-RELEASE-=
> p10.
> > >=20
> > > Did you read UPDATING?
> >=20
> > I fear a bikeshed, but I really think it may be past time to remove
> > the 'world' target from /usr/src/Makefile.inc1. It is rarely useful
> > and only should be used by those who understand the process and know
> > that it is safe. Removing it would remove a clear way to shoot one's
> > foot and would really have trivial impact on those who use it
> > properly.
> Hmm,
> This was meant to help me but instead I was left speechless, not knowing
> how to say that I did not understand the context of this ;)
> How am I supposed to go over the initial problem?
> When Kris Kennaway asked me that question, I emphatically told him, YES,
> I did. Then what he thought I should do was to rm /usr/include/g++/*
> I did exactly that, but it did not help solve the problem and even so,
> I wasn't quite sure why I was to do this, after re-reading from UPDATING.
> So my problem is very much alive and kicking ;)

This was not addressed so much to you as to the list.

The following is a history lesson. Sorry to waste the time of those who
have been with FreeBSD for a long time and know all about it.

While UPDATING contain details on updating a system, the Makefile in
/usr/src (actually Makefile.inc1) contains a target of 'world' and,
through V3 of FreeBSD, this was considered the appropriate target for
re-compiling sources.

In the days of V4, a new methodology for updating that was far less
prone to failure that would leave a system unusable was developed with
two new targets, 'buildworld' and 'installworld'. The old 'world' target
was left in the file as it could still be used and people were used to
using it (POLA). But, as V4 developed, UPDATING specified only the "new"
method of updating and the developers could integrate changes in ways
that would not work with the 'world' target.

Now we are moving on to V5 and 'world' is growing increasingly dangerous
to use. Because changes are applied that will allow smooth upgrades
when the kernel is built after the new system is built, but before it is
installed, "make world" is increasingly unlikely to work.

I was suggesting that it's time to eliminate this excellent path to
foot-shooting once and for all. 

In addition, people often do miss the section of UPDATING on the V4 to
V5 upgrade and end up with the wrong version of loader (which is pretty
sure to get fixed promptly) and with the /usr/include/g++ headers
intact. This can produce all kinds of build problems down the road. I
have no idea how to get the message about this across any better, but I
know that when V5 is declared "stable", we are going to see a flood of
failed builds as a result of this oversight.
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at			Phone: +1 510 486-8634

More information about the freebsd-current mailing list