How do GEOM_PART_* options configure geom_part_* modules??

Warner Losh imp at bsdimp.com
Thu Sep 28 17:45:56 UTC 2017


On Thu, Sep 28, 2017 at 11:12 AM, Kevin Oberman <rkoberman at gmail.com> wrote:

> On Thu, Sep 28, 2017 at 9:13 AM, Warner Losh <imp at bsdimp.com> wrote:
>
>> On Thu, Sep 28, 2017 at 10:00 AM, Nick Hibma <nick at van-laarhoven.org>
>> wrote:
>>
>> > I created a new kernel config file from scratch, wondered what the
>> > GEOM_PART_MBR option and friends were doing, search for them, didn't
>> find
>> > them in the tree, and deleted them from my config. But... de resulting
>> disk
>> > image didn't boot, because of the fact that it didn't recognise the MBR
>> > partitions (it only had a single diskid entry on the mount-root prompt).
>> >
>> > Can anyone explain to me how these kernel options work, as in: they are
>> > defined in kernel configs and as a consequence in opt_geom.h, but how
>> are
>> > they actually used to select which geom_part_* modules/kernel parts to
>> > build? I thought these options were translated to stuff that cpp would
>> use,
>> > but there are not uses of for example GEOM_PART_MBR anywhere for
>> example!
>> >
>> >
>> > The module always build them because they are listed in the module's
>> > Makefile.
>> >
>> > The kernel only sometimes does. Here's the key lines from conf/files:
>> > files:geom/geom_bsd_enc.c optional geom_bsd | geom_part_bsd
>> > files:geom/part/g_part_apm.c optional geom_part_apm
>> > files:geom/part/g_part_bsd.c optional geom_part_bsd
>> > files:geom/part/g_part_bsd64.c optional geom_part_bsd64
>> > files:geom/part/g_part_ebr.c optional geom_part_ebr
>> > files:geom/part/g_part_gpt.c optional geom_part_gpt
>> > files:geom/part/g_part_ldm.c optional geom_part_ldm
>> > files:geom/part/g_part_mbr.c optional geom_part_mbr
>> > files:geom/part/g_part_vtoc8.c optional geom_part_vtoc8
>> >
>> > which turn on/off which files get included. config "helpfully" converts
>> the
>> > upper case options to lower case for this.
>> >
>> > Warner
>> >
>> >
>> > *slaps forehead* Goose chase!
>> >
>> > I actually knew that... and, at the time, thought it was weird
>> behaviour.
>> > ''grep" would not have failed me if those options would be uppercase
>> there
>> > ...
>> >
>>
>> I've been nibbled to death by these geese often enough to have a PTSD-like
>> reaction when someone mentions it and habitually add -i to my greps...
>>
>> Warner
>
>
> This horrid POLA violation seems to have been in FreeBSD configuration
> since at least 3.0 and probably goes back to the creation of the
> configuration process.
>
> Any idea why such a horrible POLA was ever introduced? Seems like an
> obviously bad idea in an OS that is ALMOST always case sensitive.
>

It's received code from the old 4.3 BSD config program (or maybe the net-2
config program).

Warner


More information about the freebsd-current mailing list