Subject: Re: csh build revisited...
To: None <current-users@NetBSD.ORG>
From: Mike Long <mikel@shore.net>
List: current-users
Date: 08/02/1997 20:57:47
>From: Andrew Gillham <gillhaa@ghost.whirlpool.com>
>Date: Sat, 2 Aug 1997 13:29:01 -0400 (EDT)

[Peter Seebach wrote:]
>> Okay, how about this...
>> 
>> I have done a "make build", which failed at csh.  I tried making cleandir
>> in bin/csh; the rules are installed early on in make build.  So are
>> includes.
>> 
>> So... What stale files are there?  What have I missed?  I'm currently seeing
>> if a new make is any smarter, but I'm not particularly expecting success.
>> 
>> -s
>
>I wasn't able to get a clean build with *any* invocation of make.  I
>ended up trashing the whole csh directory, and running sup with '-o' to
>check all files.  Works now.  My sparc never had this problem, only
>the i386.  I haven't tracked -current continuously on the sparc, only
>the last month or so.  So whatever "stale" files there were, make didn't
>have a clue on how to remove them.

Problems like this are why I would strongly recommend that anyone
tracking -current use obj/ dirs.  Then, if you run into a problem you
can look for files in obj/ that were not cleaned up by 'make
cleandir'.

In the case of csh, err.h was left behind because it was renamed to
errnum.h in the Makefile; once that happened, 'make clean' only knew
to remove errnum.h, and any leftover err.h files were left behind.
Then when csh was built, gcc #included <err.h> from
src/bin/csh/{obj/,} instead of /usr/include, and warnings were the
result.
-- 
Mike Long <mikel@shore.net>                http://www.shore.net/~mikel
"Every normal man must be tempted at times to spit on his hands,
hoist the black flag, and begin slitting throats." -- H.L. Mencken