summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authorbdrewery <bdrewery@FreeBSD.org>2016-01-15 22:08:58 +0000
committerbdrewery <bdrewery@FreeBSD.org>2016-01-15 22:08:58 +0000
commit533cb3d787824837cfca85e0fed1de6e39cc30a8 (patch)
tree35a8735a12d904878c2652ae3bbbf104c9757df2 /sys/conf
parent2ec8a5203c0354b7303ae00e5844e42e04197d84 (diff)
downloadFreeBSD-src-533cb3d787824837cfca85e0fed1de6e39cc30a8.zip
FreeBSD-src-533cb3d787824837cfca85e0fed1de6e39cc30a8.tar.gz
FAST_DEPEND: Fix incremental builds leading to kernel panics.
This fixes .depend.genassym.o not being included. genassym.o depends on all of the system headers and when rebuilt regenerates assym.s which lists offsets for critial .S files to utilize. By having a struct in a system header change its offsets and not have generassym.o be rebuilt, this would lead to panics. The flaw in the initial commit was seeing ${OBJS} in ${SYSTEM_OBJS} and assuming it had all of ${SRCS} in it. This is not the case though. The older mkdep code splits out all of the various SRC lists for generating the .depend file. It also includes ${GEN_CFILES}, which had genassym.c and was the only significant file lacking from ${SYSTEM_OBJS} upon inspection, since it is not linked in. Rather than duplicate the likely soon-to-be-removed mkdep lists, just add genassym.o to the DEPENDOBJS list. Using ${SRCS} as bsd.dep.mk does would be nice but there are many files in the build that are only added to ${OBJS} and not ${SRCS}, such as bf_enc.o derived from bf_enc.S for i386. Sponsored by: EMC / Isilon Storage Division Reported by: dhw (several panics on current@) Pointyhat to: bdrewery
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/kern.post.mk2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk
index ecff245..63aeab1 100644
--- a/sys/conf/kern.post.mk
+++ b/sys/conf/kern.post.mk
@@ -205,7 +205,7 @@ DEPENDFILES+= .depend.*
DEPEND_CFLAGS+= -MD -MP -MF.depend.${.TARGET}
DEPEND_CFLAGS+= -MT${.TARGET}
CFLAGS+= ${DEPEND_CFLAGS}
-DEPENDOBJS+= ${SYSTEM_OBJS}
+DEPENDOBJS+= ${SYSTEM_OBJS} genassym.o
DEPENDFILES_OBJS= ${DEPENDOBJS:O:u:C/^/.depend./}
.if ${.MAKEFLAGS:M-V} == ""
.for __depend_obj in ${DEPENDFILES_OBJS}
OpenPOWER on IntegriCloud