cvs commit: src/sys/conf kern.post.mk kmod.mk
Bruce Evans
bde at zeta.org.au
Fri Nov 14 14:54:38 PST 2003
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.
%%%
Index: cpu.h
===================================================================
RCS file: /home/ncvs/src/sys/i386/include/cpu.h,v
retrieving revision 1.68
diff -u -2 -r1.68 cpu.h
--- cpu.h 16 Aug 2003 16:57:56 -0000 1.68
+++ cpu.h 14 Nov 2003 18:06:08 -0000
@@ -103,5 +104,5 @@
get_cyclecount(void)
{
-#if defined(I386_CPU) || defined(I486_CPU)
+#if defined(I386_CPU) || defined(I486_CPU) || defined(KLD_MODULE)
struct bintime bt;
%%%
All header files except the one with this bug seem to have had all the
necessary ifdefs on Ix86_CPU.
> I'd have picked up the syntax error in mac_test.c if this had been in
> place then :-). And it makes mac_test and other regression test modules
> far more functional...
Is mac_test another broken module that depends on options? :-)
Bruce
More information about the cvs-src
mailing list