Bug #408
closed
make buildkernel not -j >1 safe?
Added by TGEN almost 18 years ago.
Updated almost 18 years ago.
Description
It appears a `make buildkernel` is not safe for more than one parallel
make. The fast scrolling output didn't make things very clear, but I
highly suspect there is no proper .ORDER -ing of the mkdep phase. Where
it normally is busy for a couple of seconds doing that, it now rushes
right along. I'm not enough of a Makefile guru to fix that though, I fear.
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net
I hope kern.fwd.mk rev 1.6 fixes your problem.
Cheers.
Alas, it doesn't. The exact error is:
./aicasm.nx -nostdinc -I. -Iinclude -I/usr/home/tgen/work/current/sys
-I/usr/home/tgen/work/current/sys/../include
-I/usr/home/tgen/obj/usr/home/tgen/work/current/sys/DORADO
-I"/usr/home/tgen/work/current/sys/dev/acpica5"
-I"/usr/home/tgen/work/current/sys/contrib/dev/acpica-unix-20050309/include"
-I/usr/home/tgen/work/current/sys/contrib/ipfilter
-I/usr/home/tgen/work/current/sys/bus/cam/scsi
-I/usr/home/tgen/work/current/sys/dev/disk/aic7xxx -o aic7xxx_seq.h -r
aic7xxx_reg.h -p aic7xxx_reg_print.c -i
/usr/home/tgen/work/current/sys/dev/disk/aic7xxx/aic7xxx_osm.h
/usr/home/tgen/work/current/sys/dev/disk/aic7xxx/aic7xxx.seq
In file included from
/usr/home/tgen/work/current/sys/../include/stdint.h:32,
from /usr/home/tgen/work/current/sys/sys/types.h:50,
from /usr/home/tgen/work/current/sys/sys/param.h:77,
from
/usr/home/tgen/work/current/sys/machine/pc32/i386/genassym.c:41:
/usr/home/tgen/work/current/sys/sys/stdint.h:12:28: machine/stdint.h: No
such file or directory
Is this perhaps done before the fwd phase, or part of it?
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net
It seems the BEFORE_DEPEND stuff is done too soon. Perhaps the .ORDER in
kern.fwd.mk should read something like this:
.ORDER: ${_MACHINE_FWD}/include/machine ${_FWDHDRS} assym.s ${_LHDRS}
Would that be possible?
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net
.ORDER: ${_MACHINE_FWD}/include/machine ${_FWDHDRS} ${_LHDRS}
${BEFORE_DEPEND} \
genassym.o
Only fixes the BEFORE_DEPEND stuff, but not genassym.o.
genassym.o: $S/machine/$P/$M/genassym.c forwarding-headers
Fixes the latter. I'll try some more things later on, but this appears
to work. I'll see what the minimum required is (maybe just the
additional dependency on the forwarding-headers target for genassym.o is
enough), and then commit that if no objections arise.
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net
Pardon me, but I was mistaken here. BEFORE_DEPEND are not a problem, it
was just that the output on console was confusing.
This is enough. I'll commit right away.
Cheers,
--
Thomas E. Spanjaard
tgen@netphreax.net
The fix has been committed.
Also available in: Atom
PDF