Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Aug 2006 19:37:23 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/sys sx.h
Message-ID:  <20060830192747.B86395@delplex.bde.org>
In-Reply-To: <200608292036.k7TKaXBp044347@repoman.freebsd.org>

index | next in thread | previous in thread | raw e-mail

On Tue, 29 Aug 2006, John Baldwin wrote:

> jhb         2006-08-29 20:36:33 UTC
>
>  FreeBSD src repository
>
>  Modified files:
>    sys/sys              sx.h
>  Log:
>  The _sx_assert() prototype should exist if either of INVARIANTS or
>  INVARIANT_SUPPORT is defined so you can build a kernel with
>  INVARIANT_SUPPORT, but build a module with just INVARIANTS on.

No it shouldn't.  INVARIANT_SUPPORT is a documented prerequisite for
INVARIANTS.  So is the resulting requirements for using INVARIANTS to
create non-modular "modules":  From /sys/conf/NOTES:

# The INVARIANT_SUPPORT option makes us compile in support for
# verifying some of the internal structures.  It is a prerequisite for
                                               ^^^^^^^^^^^^^^^^^^^^^^^^
# 'INVARIANTS', as enabling 'INVARIANTS' will make these functions be
   ^^^^^^^^^^^^
# called.  The intent is that you can set 'INVARIANTS' for single
# source files (by changing the source file or specifying it on the
# command line) if you have 'INVARIANT_SUPPORT' enabled.  Also, if you
                                                           ^^^^^^^^^^^^
# wish to build a kernel module with 'INVARIANTS', then adding
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# 'INVARIANT_SUPPORT' to your kernel will provide all the necessary
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# infrastructure without the added overhead.
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

However, INVARIANTS is a fairly bogus option.  Last time I looked
(long ago) it only controlled a small amount of kernel bloat, and there
are probably many other functions that are defined unconditionally else
modules with INVARIANTS would be more broken.

Bruce


home | help

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