Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Nov 2003 00:03:45 -0500
From:      "Brian F. Feldman" <green@FreeBSD.org>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/conf kern.post.mk kmod.mk 
Message-ID:  <200311160503.hAG53j2t058858@green.bikeshed.org>
In-Reply-To: Message from Bruce Evans <bde@zeta.org.au>  <20031115094529.H10567@gamplex.bde.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans <bde@zeta.org.au> wrote:
> On Fri, 14 Nov 2003, Robert Watson wrote:
> 
> > On Fri, 14 Nov 2003, John Baldwin wrote:
> >
> > > On 14-Nov-2003 Brian Feldman wrote:
> > > > green       2003/11/14 08:04:11 PST
> > > >
> > > >   FreeBSD src repository
> > > >
> > > >   Modified files:
> > > >     sys/conf             kern.post.mk kmod.mk
> > > >   Log:
> > > >   Include opt_global.h in the modules build, when building from a normal
> > > >   kernel build.  This makes it possible for me not to get pissed off that
> > > >   random.ko crashes the system trying to rdtsc() when the i386/cpu.h
> > > >   support code decides it's okay to call that op when neither I386_CPU or
> > > >   I486_CPU is defined.  I guess it also makes WITNESS/INVARIANTS defines
> > > >   get picked up by the modules.
> 
> Ugh.
> 
> > > WITNESS doesn't matter as all calls to it are done in the actual locking
> > > code itself which does not lives in modules.  Modules always call the
> > > locking functions and don't inline locking operations.
> 
> WITNESS actually has non-broken support for modules.  Modules cannot depend
> on options, since they must work for all kernels.
> 
> Here is a fix to unbreak the rdtsc() call similarly.

I dunno, Bruce; I don't really agree with you there.  Modules are installed, 
as they are built in the src/sys/arch/compile/KERNEL directories, into the 
same directories as the kernel.  This implies they're matched with the 
kernel.  I think depending on options in those modules is totally, perfectly 
fine.

I think it's also fine for modules built outside of a kernel build to make 
sure to work with kernels compiled with any options whatsoever.  The modules 
built by ports should be the same way.  There shouldn't be any options in 
the kernel build that can break "generic" modules, but the modules built 
along side the kernel you're building aren't "generic" modules.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green@FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\




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