Page MenuHomeFreeBSD

Allow bootstrapping makefs on older FreeBSD hosts and Linux/mac
ClosedPublic

Authored by arichardson on Jan 16 2020, 10:19 AM.

Details

Summary

In order to do so we need to install the msdosfs headers to the bootstrap
sysroot and avoid includes of kernel headers that may not exist on every
host (e.g. sys/lockmgr.h). This change should allow bootstrapping of makefs
on FreeBSD 11+ as well as Linux and macOS.

For our CheriBSD builds we always bootstrap makefs by setting
LOCAL_XTOOL_DIRS='lib/libnetbsd usr.sbin/makefs' and use the makefs binary
from the build tree to create a bootable disk image.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

arichardson created this revision.Jan 16 2020, 10:19 AM
brooks accepted this revision.Jan 16 2020, 11:01 AM
brooks added inline comments.
usr.sbin/makefs/msdos/msdosfs_denode.c
294 ↗(On Diff #66823)

This change should probably be explained in the commit message.

This revision is now accepted and ready to land.Jan 16 2020, 11:01 AM
arichardson added inline comments.Jan 16 2020, 11:02 AM
usr.sbin/makefs/msdos/msdosfs_denode.c
294 ↗(On Diff #66823)

Yeah, makes sense. In the makefs wrapper bwrite and bdwrite are the same. However, Linux does not have a IO_SYNC macro, so to bootstrap there I just always call bwrite.