git: 358752abdf1c - main - loader/loader.mk: add docs for LOADER_*_SUPPORT variables

From: Warner Losh <imp_at_FreeBSD.org>
Date: Fri, 25 Oct 2024 03:12:07 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=358752abdf1c44d15e99bc2709b0256a358fd2a9

commit 358752abdf1c44d15e99bc2709b0256a358fd2a9
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2024-10-25 02:22:51 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-10-25 02:26:26 +0000

    loader/loader.mk:  add docs for LOADER_*_SUPPORT variables
    
    These are internal to the loader and generally can only be set in a
    makefile that's compiling some variation of loader. Add caveats since
    these aren't really user-serviceable parts, though some downstreams will
    tweak individual makefiles for their own purposes.
    
    Sponsored by:           Netflix
---
 stand/loader.mk | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/stand/loader.mk b/stand/loader.mk
index de717ce7b18b..0f2ff31a5343 100644
--- a/stand/loader.mk
+++ b/stand/loader.mk
@@ -1,4 +1,3 @@
-
 .PATH: ${LDRSRC} ${BOOTSRC}/libsa
 
 CFLAGS+=-I${LDRSRC}
@@ -30,6 +29,33 @@ SRCS+=	load_elf64.c reloc_elf64.c
 SRCS+=	metadata.c
 .endif
 
+#
+# LOADER_*_SUPPORT variables are used to subset the boot loader in the various
+# configurations each platform supports. These are typically used to omit broken
+# options, or to size optimize for space constrained instances. These are set in
+# loader Makefiles (which include loader.mk) to control which subset of features
+# are enabled. These cannot generally be set in src.conf since that would affect
+# all loaders, but also not all loaders are setup for overrides like that and
+# not all combinations of the following have been tested or even work. Sometimes
+# non-default values won't work due to buggy support for that component being
+# optional.
+#
+# LOADER_BZIP2_SUPPORT	Add support for bzip2 compressed files
+# LOADER_CD9660_SUPPORT	Add support for iso9660 filesystems
+# LOADER_DISK_SUPPORT	Adds support for disks and mounting filesystems on it
+# LOADER_EXT2FS_SUPPORT	Add support for ext2 Linux filesystems
+# LOADER_GPT_SUPPORT	Add support for GPT partitions
+# LOADER_GZIP_SUPPORT	Add support for gzip compressed files
+# LOADER_INSTALL_SUPPORT Add support for booting off of installl ISOs
+# LOADER_MBR_SUPPORT	Add support for MBR partitions
+# LOADER_MSDOS_SUPPORT	Add support for FAT filesystems
+# LOADER_NET_SUPPORT	Adds networking support (useless w/o net drivers sometimes)
+# LOADER_NFS_SUPPORT	Add NFS support
+# LOADER_TFTP_SUPPORT	Add TFTP support
+# LOADER_UFS_SUPPORT	Add support for UFS filesystems
+# LOADER_ZFS_SUPPORT	Add support for ZFS filesystems
+#
+
 .if ${LOADER_DISK_SUPPORT:Uyes} == "yes"
 CFLAGS.part.c+= -DHAVE_MEMCPY -I${SRCTOP}/sys/contrib/zlib
 SRCS+=	disk.c part.c vdisk.c