On Thu, 2012-07-12 at 12:47 -0700, Andrew Boyer wrote: > On Jul 12, 2012, at 3:39 PM, Andriy Gapon wrote: > > > on 12/07/2012 22:36 Fabian Keil said the following: > >> Andriy Gapon <a...@freebsd.org> wrote: > >> > >>> on 12/07/2012 21:17 Fabian Keil said the following: > >>>> Benjamin Kaduk <ka...@mit.edu> wrote: > >>>> > >>>>> On Wed, 11 Jul 2012, Fabian Keil wrote: > >>>>> > >>>>>> I'm using the following modification of Sean's patch: > >>>> > >>>> This way it seems to work as expected: > >>>> > >>>> diff --git a/sys/modules/dtrace/dtraceall/Makefile > >>>> b/sys/modules/dtrace/dtraceall/Makefile index 456efd1..628583b 100644 > >>>> --- a/sys/modules/dtrace/dtraceall/Makefile +++ > >>>> b/sys/modules/dtrace/dtraceall/Makefile @@ -1,7 +1,7 @@ # $FreeBSD: > >>>> src/sys/modules/dtrace/dtraceall/Makefile,v 1.3 2011/04/09 09:07:31 uqs > >>>> Exp $ > >>>> > >>>> KMOD= dtraceall -SRCS= dtraceall.c opt_compat.h > >>>> +SRCS= dtraceall.c opt_compat.h opt_nfs.h > >>>> > >>>> CFLAGS+= -I${.CURDIR}/../../.. > >>>> > >>> > >>> If you do cd sys/modules/dtrace/dtraceall && make [obj depend] all, does > >>> it compile OK with the above change? > >> > >> Depends on your expectations I guess. As neither NFS-related option gets > >> defined, no dependency on either NFS module is registered. The compiler has > >> no complaints, though. > > > > Interesting. Could you repeat after sufficient cleaning up? > > I am not sure where from opt_nfs.h file could come. > > > > Maybe related: check out sys/modules/ipfw/Makefile. It makes its own option > headers for INET and INET6. > > -A > > -------------------------------------------------- > Andrew Boyer abo...@averesystems.com > > > >
I've pondered this on an off for a couple of weeks now. I can clearly see that if we want compile time dependencies, that's fine, we can make each nfclient object dependant on the #define. Both are valid cases to have loaded though, so they shouldn't be conditional on each other as in my patches. If one does this however, the module makefile needs to be adjusted like the ipfw makefile to create an opt_nfs.h with the NFS client defines, else you will have neither dtrace object available. There isn't a clear way that I can see to compile dtraceall.ko as a module if you are doing so outside of the kernel compile though. The module tree isn't really aware of what you are running, therefore it would have to compile to load both regardless. Which, if your kernel doesn't support one or both nfs objects, will cause a kldload failure. I'm not real clear how to unwind this situation. Sean _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"