COMPAT_* kernel config options -- some housecleaning overdue?

Conrad J. Sabatier conrads at cox.net
Mon Jan 16 01:13:46 UTC 2012


I've been wondering for a while now about the accuracy of some of the
comments in /sys/conf/NOTES re: the various COMPAT_* options, and now,
with 9.0-RELEASE already out the door and 10.0-CURRENT as the current
development branch, it seems even more relevant to ask just how
necessary or useful some of these options are anymore.

Let me preface the following by saying that I just recently built a
10.0-CURRENT kernel with no COMPAT_* options besides COMPAT_FREEBSD32
and COMPAT_LINUX32, and everything seems to be working just fine (yes,
including Linux emulation).

First and foremost, the comment re: COMPAT_43: "You probably do NOT
want to remove this as much current code still relies on the 4.3
emulation."  This would appear to no longer be true.  And similarly,
how relevant or viable is COMPAT_43TTY anymore?  Why would one want to
use this?  I suspect that neither of these options has any real effect
anymore and both may, in fact, be essentially NOOPs.  How close to the
real picture is that?

It is my understanding that, on 64-bit platforms, COMPAT_FREEBSD32
*is* necessary if COMPAT_LINUX32 is enabled, which seems perfectly
reasonable.  However, the comment accompanying COMPAT_LINUX32 states
that COMPAT_43 is also required, which simply is not true.  And speaking
of Linux compatibility, we still have an erroneous reference to
COMPAT_LINUX instead of COMPAT_LINUX32 accompanying 'device tdfx'.

Then, of course, there are the various COMPAT_FREEBSD[4-7] options,
each accompanied by a comment which merely states the obvious but
offers no real clue as to whether or not any of them are actually
necessary.

I don't know, this whole COMPAT area just seems really messy to me -- 
disorganized, unclearly documented and probably suffering from no small
amount of bit rot and neglect.  I really do think it's time for some
cleaning up.

Hope I didn't ruffle any feathers, but I just hate this type of gray
fuzziness.  Clarification (maybe even some deprecation?) seems to be in
order here.

Thank you.

-- 
Conrad J. Sabatier
conrads at cox.net



More information about the freebsd-questions mailing list