tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: config(5) break down



On Mon, Mar 15, 2010 at 11:50:09PM +0900, Masao Uebayashi wrote:
> 2010/3/15 Wojciech A. Koszek <wkoszek%freebsd.org@localhost>:
> >        device  X
> >
> > builds device X staticly into the kernel (and maybe does something
> > device-specific), while:
> >
> >        module  X
> >
> > Only builds a KLD. I picked "module", since it seems to be more-or-less an 
> > oposite of:
> >
> >        static  X
> >
> > which could build feature "X", which is not a device" staticly. I think your
> > config(8) has this problem solved somehow, since you seem to have 
> > "filesystem"
> > keyword as well.  Nowadays, given that as you mentioned for NetBSD, in 
> > FreeBSD
> > we also have no scoping for config(8), we must build all KLDs just in case
> > someone needs them, since we don't know which file belongs to which module.
> 
> Who writes these in what file?

Every module has separate Makefile in src/sys/modules/... Isn't it the same in
NetBSD?

> 
> > I was wondering how does Linux/Solaris kernel build system work in terms of
> > opt_*.h files?  Do they have some alternative solutions for #ifdef's based 
> > on
> > what has been included into the kernel at configuration time?
> 
> Without looking them, I don't think any infrastructural (== config(1)
> itself) change helps.  Why not fix source code rather than "improving"
> config(1)?

You mean that you have a solution for:

        struct mystruct {
        #ifdef DEBUG_MYSTRUCT
                int      line;
                char    *file;
                char    *func;
                void    *another_pointer;
        #endif
                ...
        };

within a kernel code? That's the simpliest example, of course. There are
areas where you simply can't prevent this kind of #ifdef's.

-- 
Wojciech A. Koszek
wkoszek%FreeBSD.org@localhost
http://FreeBSD.czest.pl/~wkoszek/


Home | Main Index | Thread Index | Old Index