Subject: Re: -current failed to compile
To: Bill Studenmund <wrstuden@netbsd.org>
From: Kurt Schreiner <ks@ub.uni-mainz.de>
List: current-users
Date: 07/22/2003 23:11:08
On Tue, Jul 22, 2003 at 09:39:41AM -0700, Bill Studenmund wrote:
> ... 
> Well, I'm still missing how the broken signal.h got into /usr/include in
> the first place. :-)
> 
> build.sh with -D is NOT supposed to put anything in the real /usr/include.
> So nothing should get there until you install the completed build. Since
> it was a broken file, the build should have never completed, thus it
> should have never been installed.
> 
> ??
> 
> The reason we have destdirs is so that exactly what has happened to you
> doesn't happen.

Ok, lets have a look at the update history of my notebook:

There was a cvs-update on 030716 at 2328.
This was follwed by a compile on 030717 at 0044.
The log of this compile shows:

===> build.sh command: ./build.sh -u -j 3 -m i386 -O /u/NetBSD/arch/i386/obj -D /u/NetBSD/arch/i386/dest -T /u/NetBSD/arch/i386/TOOLS distribution
===> build.sh started: Thu Jul 17 00:44:42 MEST 2003

later:

--- /u/NetBSD/arch/i386/dest/usr/include/signal.h ---
STRIP=/u/NetBSD/arch/i386/TOOLS/bin/i386--netbsdelf-strip /u/NetBSD/arch/i386/TOOLS/bin/nbinstall -N /usr/src/etc -p -r -c -o root -g wheel  -m 444  /usr/src/include/signal.h /u/NetBSD/arch/i386/dest/usr/include/signal.h

later again:

In file included from /usr/src/lib/libc/arch/i386/sys/__sigaction14_sigtramp.c:42:
/u/NetBSD/arch/i386/dest/usr/include/signal.h:67: parse error before `int'
*** [__sigaction14_sigtramp.o] Error code 1

Dooh!!!

The last install was done on 030717 at 0115 after cleaning up
the "checkflist: flist inconsistencies found" of the previous compile.

I didn't notice the Error above, as "make -j 3" doesn't stop on errors.

But now it's obvious how the bad signal.h got in place. 

Moral of the story: Do NOT use make -j n, n>1 ! Better save than fast...
(or look _really_ hard for "Error"s in the compile log and install only
when there are none! ;-)

-Kurt

Btw: fetching v1.27 or some such of signal.h from the cvs archive to
     /usr/include "fixed" the compile...