Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jul 2012 15:44:57 -0700
From:      Sean Bruno <seanbru@yahoo-inc.com>
To:        Andrew Boyer <aboyer@averesystems.com>
Cc:        "freebsd-hackers@FreeBSD.org" <freebsd-hackers@FreeBSD.org>, Fabian Keil <freebsd-listen@fabiankeil.de>, Andriy Gapon <avg@FreeBSD.org>
Subject:   Re: dtraceall.ko with old nfsclient
Message-ID:  <1343429097.5002.14.camel@powernoodle.corp.yahoo.com>
In-Reply-To: <742407DF-8026-4976-A1F9-A170A62EF87A@averesystems.com>
References:  <1341863341.6064.11.camel@powernoodle.corp.yahoo.com> <4FFB4770.7050209@FreeBSD.org> <20120710154128.192eb8d6@fabiankeil.de> <1341939155.2573.8.camel@powernoodle.corp.yahoo.com> <20120710205702.5e57168b@fabiankeil.de> <4FFC8479.9080608@FreeBSD.org> <20120711122935.1382e76d@fabiankeil.de> <alpine.GSO.1.10.1207112007240.18441@multics.mit.edu> <20120712201741.34573af4@fabiankeil.de> <4FFF2171.1030800@FreeBSD.org> <20120712213615.39640d1f@fabiankeil.de> <4FFF27F0.4000106@FreeBSD.org> <742407DF-8026-4976-A1F9-A170A62EF87A@averesystems.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <avg@FreeBSD.org> wrote:
> >> 
> >>> on 12/07/2012 21:17 Fabian Keil said the following:
> >>>> Benjamin Kaduk <kaduk@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	aboyer@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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1343429097.5002.14.camel>