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)
Sep 15 2024, 11:04 PM
Unknown Object (File)
Sep 5 2024, 5:59 PM
Unknown Object (File)
Aug 19 2024, 2:29 AM
Unknown Object (File)
Aug 15 2024, 3:11 PM
Unknown Object (File)
Aug 15 2024, 1:00 PM
Unknown Object (File)
Aug 15 2024, 1:00 PM
Unknown Object (File)
Aug 13 2024, 11:50 AM
Unknown Object (File)
Aug 9 2024, 1:31 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

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 28694
Build 26713: arc lint + arc unit

Event Timeline

brooks added inline comments.
usr.sbin/makefs/msdos/msdosfs_denode.c
294

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

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.