Subject: Re: GENERIC is absurdly big
To: Christoph Badura <bad@bsd.de>
From: Greg Troxel <gdt@ir.bbn.com>
List: port-i386
Date: 12/19/2003 09:34:04
I agree that GENERIC is hugely big.  I'm not sure why, though, since i
haven't tried to measure .o's by class.

I think Jason's suggestion is pretty sensible (would be cool to have
m4, or perhaps just .include GENERIC_CORE), but really we are talking
about picking a few points that will cover lots of uses, where uses is
machine + set of installed cards.

I still use a machine with an actual ISA bus as well as PCI (bought
1999, tried hard to get ISA slots for old cards).  But, I don't mind
building a kernel for odd stuff.

So a kernel that supports ISA and PCI only, has drivers for the
reasonably common PCI cards, and standard ISA devices (perhaps
soundblaster and ep, plus lpt/com of course) but tries to be a bit
trim would be useful.  This would intend to work for 90% of the
people, hoping to get to 60% of the size.

LINT is cool, but I wouldn't want to run it - that's for checking for
warnings/errors.


Another approach is to factor out lots of stuff into subfiles (for a
bus, for normal devices on the bus, for extended devices on the bus).
This would ease kernel compilation; I routinely strip configs to just
what I have, but that's perhaps more work than it needs to be.

Then GENERIC would really be a list of included pieces, easy to tweak,
and easy to include new configs.

While I'm ranting, I'd like to see IPSEC (and _ESP) in GENERIC (and
not commented out!).  This is my #1 reason why I always have to make
a new kernel.

-- 
        Greg Troxel <gdt@ir.bbn.com>