Fix buildkernel without -j.
authorSascha Wildner <saw@online.de>
Sat, 19 Mar 2011 08:17:29 +0000 (09:17 +0100)
committerSascha Wildner <saw@online.de>
Sat, 19 Mar 2011 08:17:29 +0000 (09:17 +0100)
One of the recent commits by sephe caused genassym.c to depend on
bus_if.h and device_if.h (via machintr.h via bus.h).

However, without -j, these headers would not be generated (from
the .m files) before genassym.c was compiled, causing the kernel
build to break.

As a fix, make genassym.c depend on these headers in the Makefile.

The interesting bit is that this is one of the cases where it
breaks without -j but _does_ work with -j 1 (read: one) due to
the different handling of no -j vs. -j 1 in make(1).

sys/conf/kern.post.mk

index cafdfcd..95cb32b 100644 (file)
@@ -73,7 +73,8 @@ hack.So: Makefile
 assym.s: $S/kern/genassym.sh genassym.o
        sh $S/kern/genassym.sh genassym.o > ${.TARGET}
 
-genassym.o: $S/platform/$P/$M/genassym.c ${FORWARD_HEADERS_COOKIE}
+genassym.o: $S/platform/$P/$M/genassym.c ${FORWARD_HEADERS_COOKIE} \
+           ${MFILES:T:S/.m$/.h/}
        ${CC} -c ${CFLAGS:N-fno-common:N-mcmodel=small} ${WERROR} \
        $S/platform/$P/$M/genassym.c