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>
References:  <200608292036.k7TKaXBp044347@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



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