reduce directories in sys/modules ?

Luigi Rizzo rizzo at iet.unipi.it
Thu Jan 8 14:17:49 PST 2009


On Thu, Jan 08, 2009 at 01:51:42PM -0800, Julian Elischer wrote:
> Luigi Rizzo wrote:
> >Is there a way to reduce the number of directories in sys/modules ?
> >
> >There seems to be one directory per module, even though many of
> >those are related and the source resides in one place
> >(e.g. sys/modules/iwifw/ has three children but the source
> >is in sys/contrib/dev/iwi ; and the same goes for many other
> >entries e.g.
> >sys/modules/digi* <-> /sys/dev/digi,
> >sys/modules/drm	<-> sys/dev/drm
> >sys/modules/ata
> >
> >and many more.
> >Ideas ?
> 
> I have many under netgraph.
> maybe we could cluster them by type.
> ethernet
> protocols
>  or does that not help what you want?

yes, i wanted something like that: one directory per cluster
(of course where it makes sense to pack stuff).
Take e.g. /sys/dev/ata (but there are many similar cases) which has
24 files and generates 15 different directories, each one with only
one Makefile containing the same thing

        # $FreeBSD: ... $
        .PATH: ${.CURDIR}/../../../dev/ata
        KMOD=   atasomething
        SRCS=   ata-some-thing.c
        SRCS+=  opt_ata.h ata_if.h device_if.h bus_if.h pci_if.h

        .include <bsd.kmod.mk>

It would be a lot simpler to have one dir and one Makefile
in /sys/modules/ata/Makefile with this content

        # $FreeBSD: ... $

        common_headers= opt_ata.h ata_if.h device_if.h bus_if.h
        KMOD_LIST= atafoo atabar atabaz atadisc ataata atapci...
        SRCS_atafoo=    ata-some-foo.c ${common_headers}
        SRCS_atabar=    ata-bar-src.c ${common_headers}
        ...

        .include <bsd.kmod.mk>

This would be backward compatible with the existing structure, provided
that the bsd.kmod.mk expands the entries in KMOD_LIST creating
the individual targets etc.

        cheers
        luigi


More information about the freebsd-current mailing list