Date: Thu, 28 Sep 2017 09:54:37 -0600 From: Warner Losh <imp@bsdimp.com> To: Nick Hibma <nick@van-laarhoven.org> Cc: FreeBSD Current Mailing List <freebsd-current@freebsd.org> Subject: Re: How do GEOM_PART_* options configure geom_part_* modules?? Message-ID: <CANCZdfoBNLVBopk0ztNeYusYYvD8KG02987boFWWsFba_DGZeQ@mail.gmail.com> In-Reply-To: <FD2F9831-F5E9-459D-B250-E5D9AE72DA08@van-laarhoven.org> References: <FD2F9831-F5E9-459D-B250-E5D9AE72DA08@van-laarhoven.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Sep 28, 2017 at 9:31 AM, Nick Hibma <nick@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" convers the upper case options to lower case for this. Warner Warner > The only thing I was able to come up with, but could not figure out, was > FEATURE() doing some magic. > > Thanks in advance for any pointers! > > Nick Hibma > nick@van-laarhoven.org <mailto:nick@van-laarhoven.org> > > -- Open Source: We stand on the shoulders of giants. > > > % grep -r GEOM_PART_ /usr/src/sys/ | grep -Ev '/conf/.*options' > /usr/src/sys/geom/part/g_part_mbr.c: "GEOM_PART_MBR Master Boot > Record"); > /usr/src/sys/geom/part/g_part_ldm.c: "GEOM_PART_LDM Logical Disk > Manager"); > /usr/src/sys/geom/part/g_part_ldm.c: * XXX: We use some knowledge > about GEOM_PART_GPT internal > /usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT) > /usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT > /usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT) > /usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT) > /usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT) > /usr/src/sys/geom/part/g_part_ebr.c:#if defined(GEOM_PART_EBR_COMPAT) > /usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT > /usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT > /usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT > /usr/src/sys/geom/part/g_part_ebr.c:#ifndef GEOM_PART_EBR_COMPAT > /usr/src/sys/geom/part/g_part.h:#ifndef _GEOM_PART_H_ > /usr/src/sys/geom/part/g_part.h:#define _GEOM_PART_H_ > /usr/src/sys/geom/part/g_part.h:#endif /* !_GEOM_PART_H_ */ >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfoBNLVBopk0ztNeYusYYvD8KG02987boFWWsFba_DGZeQ>