svn commit: r294105 - head/sys/conf

Bryan Drewery bdrewery at FreeBSD.org
Fri Jan 15 22:09:00 UTC 2016


Author: bdrewery
Date: Fri Jan 15 22:08:58 2016
New Revision: 294105
URL: https://svnweb.freebsd.org/changeset/base/294105

Log:
  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

Modified:
  head/sys/conf/kern.post.mk

Modified: head/sys/conf/kern.post.mk
==============================================================================
--- head/sys/conf/kern.post.mk	Fri Jan 15 22:08:51 2016	(r294104)
+++ head/sys/conf/kern.post.mk	Fri Jan 15 22:08:58 2016	(r294105)
@@ -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}


More information about the svn-src-all mailing list