PERFORCE change 135010 for review

John Baldwin jhb at freebsd.org
Fri Feb 15 06:57:53 PST 2008


On Thursday 14 February 2008 07:46:41 pm Kris Kennaway wrote:
> John Baldwin wrote:
> > On Thursday 07 February 2008 11:20:57 pm Kip Macy wrote:
> >> http://perforce.freebsd.org/chv.cgi?CH=135010
> >>
> >> Change 135010 by kmacy at kmacy:storage:toehead on 2008/02/08 04:20:17
> >>
> >> 	add opt_global.h to dependencies
> >>
> >> Affected files ...
> >>
> >> .. //depot/projects/toehead/sys/modules/cxgb/tom/Makefile#3 edit
> >>
> >> Differences ...
> >>
> >> ==== //depot/projects/toehead/sys/modules/cxgb/tom/Makefile#3 (text+ko) 
====
> >>
> >> @@ -5,7 +5,8 @@
> >>  KMOD=	tom
> >>  SRCS=   cxgb_tom.c cxgb_cpl_io.c cxgb_listen.c cxgb_tom_sysctl.c 
cxgb_cpl_socket.c
> >>  SRCS+=  cxgb_ddp.c cxgb_vm.c
> >> -SRCS+=	opt_compat.h opt_inet.h opt_inet6.h opt_ipsec.h opt_mac.h 
opt_tcpdebug.h opt_ddb.h
> >> +SRCS+=	opt_compat.h opt_inet.h opt_inet6.h opt_ipsec.h opt_mac.h
> >> +SRCS+=  opt_tcpdebug.h opt_ddb.h opt_global.h
> >>  SRCS+=	device_if.h bus_if.h pci_if.h
> >>  
> >>  #CFLAGS+= -DDEBUG_PRINT -DDEBUG
> >>
> > 
> > That's kind of odd.  Do you have an explicit #include "opt_global.h" 
somewhere?
> > 
> 
> It also doesn't work :)
> 
> The problem is that if you build a kernel+module with 
> INVARIANTS+INVARIANT_SUPPORT set, then remove both options, rerun 
> config, make depend, make all, the module is not rebuilt and fails to load.

Ah, that is a bug in the 'make depend' stuff.  We explicitly enforce a 
dependency for kernels in kern.post.mk.  Try this instead perhaps:

Index: kmod.mk
===================================================================
RCS file: /usr/cvs/src/sys/conf/kmod.mk,v
retrieving revision 1.221
diff -u -r1.221 kmod.mk
--- kmod.mk	19 Nov 2007 16:24:10 -0000	1.221
+++ kmod.mk	15 Feb 2008 14:50:03 -0000
@@ -428,6 +428,9 @@
 assym.s: @/kern/genassym.sh
 .endif
 	sh @/kern/genassym.sh genassym.o > ${.TARGET}
+.if defined(KERNBUILDDIR)
+genassym.o: opt_global.h
+.endif
 .if exists(@)
 genassym.o: @/${MACHINE_ARCH}/${MACHINE_ARCH}/genassym.c
 .endif
@@ -439,6 +442,10 @@
 lint: ${SRCS}
 	${LINT} ${LINTKERNFLAGS} ${CFLAGS:M-[DILU]*} ${.ALLSRC:M*.c}
 
+.if defined(KERNBUILDDIR)
+${OBJS}: opt_global.h
+.endif
+
 .include <bsd.dep.mk>
 
 cleandepend: cleanilinks


BTW, reading kmod.mk the submit above only works if .depend doesn't exist.  It 
won't work if you have run 'make depend' because of this:

.if !exists(${.OBJDIR}/${DEPENDFILE})
${OBJS}: ${SRCS:M*.h}
.endif

-- 
John Baldwin


More information about the p4-projects mailing list