Page MenuHomeFreeBSD

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

Authored by arichardson on Jan 16 2020, 10:19 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Oct 8, 1:11 AM
Unknown Object (File)
Tue, Oct 7, 5:17 AM
Unknown Object (File)
Thu, Sep 25, 11:42 AM
Unknown Object (File)
Wed, Sep 17, 1:51 PM
Unknown Object (File)
Aug 5 2025, 12:27 PM
Unknown Object (File)
Jul 31 2025, 11:30 PM
Unknown Object (File)
Jul 27 2025, 12:17 PM
Unknown Object (File)
Jul 20 2025, 1:01 AM
Subscribers

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 - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

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
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.