On Tue, Jan 22, 2002 at 09:34:56AM -0600, Stephen Montgomery-Smith wrote:
> I have recent sources (the most recent CTM delta).  I do make -j4
> buildworld
> on three different computers.  It works on two of them, but on one of
> them (the fastest), I get:
> 
> ===> usr.sbin/i4b/ispppcontrol
> rm -f .depend
> mkdep -f .depend -a    -I/usr/obj/usr/src/i386/usr/include 
> /usr/src/usr.sbin/i4b/ispppcontrol/ispppcontrol.c
> cd /usr/src/usr.sbin/i4b/ispppcontrol; make _EXTRADEPEND
> echo ispppcontrol: /usr/obj/usr/src/i386/usr/lib/libc.a  >> .depend
> ===> usr.sbin/i4b/man
> ===> usr.sbin/boot0cfg
> rm -f .depend
> mkdep -f .depend -a    -I/usr/obj/usr/src/i386/usr/include 
> /usr/src/usr.sbin/boot0cfg/boot0cfg.c
> cd /usr/src/usr.sbin/boot0cfg; make _EXTRADEPEND
> echo boot0cfg: /usr/obj/usr/src/i386/usr/lib/libc.a  >> .depend
> 1 error
> *** Error code 2
> 1 error
> *** Error code 2
> 1 error
> 
> I didn't get this problem when I removed the -j4.  This computer had a
> hard drive failure a few months ago, and the replacement drive is
> exceedingly fast.  So maybe this computer is "too fast" for -j4 to
> work.  As computers get faster and faster, maybe more and more people
> will have this problem.

This is a known difficulty with multiple make threads. Note that
I do _NOT_ call it a problem. It is caused by a thread that
needs <foo> getting to the part that expects <foo> to have been
built before the thread that actually builds <foo> gets to the
build-foo code. I have found that I frequently can reissue the
same command and <foo> will get built before it is required by
something in another thread, and the make will run to completion
the second time.

It _will_ _not_ always run to completion, and if the first part
of the make code cleans up, so that the make always starts from a
clean set of output files, it probably won't run to completion.

-- 
Mike Andrews
[EMAIL PROTECTED]
Tired old sysadmin since 1964

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-stable" in the body of the message

Reply via email to