Subject: Re: CURRENT: build problems
To: Cliff Albert <cliff@oisec.net>
From: Luke Mewburn <lukem@netbsd.org>
List: current-users
Date: 12/30/2002 06:42:07
On Sun, Dec 29, 2002 at 04:04:27PM +0100, Cliff Albert wrote:
  | I have some troubles building NetBSD CURRENT (1.6K) (cvs checkout 
  | today). The machine is running a NetBSD 1.6 world which has been 
  | installed from the release sets, and is running a NetBSD 1.6K kernel.
  | 
  | I am building it using the following command-line:
  | 
  | ./build.sh -a i386 -B PAIGE -D / -E -m i386 -T 
  | /usr/src/obj/tools/tools.NetBSD-1.6K-i386 -u
  | 
  | And it breaks with the following output:
  | 
  | PATH=/usr/src/obj/tools/tools.NetBSD-1.6K-i386/lib/groff:${PATH} 
  | /usr/src/obj/tools/tools.NetBSD-1.6K-i386/bin/nbgroff -Tascii 
  | -mtty-char -mandoc /usr/src/lib/libc/db/man/btree.3  > btree.cat3.tmp 
  | && mv btree.cat3.tmp btree.cat3
  | /usr/src/obj/tools/tools.NetBSD-1.6K-i386/bin/nbgroff: can't find 
  | `DESC' file
  | /usr/src/obj/tools/tools.NetBSD-1.6K-i386/bin/nbgroff:fatal error: 
  | invalid device `ascii'
  | Abort trap - core dumped
  | *** Error code 134
  | 
  | Stop.
  | nbmake: stopped in /usr/src/lib/libc
  | *** Error code 1

This appears to be a symptom of a problem where C++ applications were
broken for a short while, so your version of 
/usr/src/obj/tools/tools.NetBSD-1.6K-i386/bin/nbgroff is actually
broken.

I was sure that this problem only affected code compiled from source
in a short (few day) window from a couple of months back, so I don't
know why it bit you per se.

The easiest way to recover might be:
    *	ensure your -current sources are up to date (which it appears it is)
    *	do a full "make cleandir", incase there's some junk left around
	that build.sh -u (make UPDATE=1 ...) is being affected by
    *	reextract the release "comp" set into /, so you have a compiler
	which works
    *	re-run build.sh

Note; I prefer to build to a "DESTDIR != /" (and thus without build.sh -E),
so that I don't affect my "production" compilers & libraries & userland
until the build completes cleanly...  Once that occurs, you can use
	./build.sh -B PAIGE -D ... -T ... -u -d -i /
to do a "make distribution" (-d) after the make build, and then copy
from DESTDIR to / (-i /)

Luke.

PS: there's a reason '-E' was added; DESTDIR=/ builds can result in
lossage that's hard to debug :-)