On Thu, 2017-09-28 at 17:31 +0200, Nick Hibma 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 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_at_van-laarhoven.org <mailto:nick_at_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_ */ If you had added '-i' to your grep command you would have found the missing piece in sys/conf/files. config(8) turns uppercase OPTION_NAME into lowercase option_name for purposes of configuring which files to compile. -- IanReceived on Thu Sep 28 2017 - 15:10:15 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:13 UTC