cvs commit: src/sys/sys sx.h

Bruce Evans bde at zeta.org.au
Wed Aug 30 09:37:29 UTC 2006


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


More information about the cvs-src mailing list