svn commit: r336532 - in head/stand: . common i386 i386/loader i386/zfsboot i386/zfsloader sparc64 sparc64/loader sparc64/zfsloader

Warner Losh imp at FreeBSD.org
Fri Jul 20 05:17:40 UTC 2018


Author: imp
Date: Fri Jul 20 05:17:37 2018
New Revision: 336532
URL: https://svnweb.freebsd.org/changeset/base/336532

Log:
  Collapse zfsloader functionality back down into loader.
  
  We no longer really need a separate zfsloader. It was useful when we
  were first supporting ZFS and had limited ability to properly boot off
  of ZFS without the special boot loader. Now that the boot loader has
  matured, go the way loader.efi pioneered and just build one
  binary. Change the name of the loader to load in the secondary boot
  blocks to be just /boot/loader. Provide a symbolic link from zfsloader
  to loader so people who have not upgraded their boot blocks are not
  affected. This has the happy benefit of making coexistence easier as
  well (fewer binaries in the matrix).
  
  Discussed with: allanjude@, kevans@
  RelNotes: Yes
  Sponsored by: Netflix
  Differential Revision: https://reviews.freebsd.org/D16361

Deleted:
  head/stand/i386/zfsloader/Makefile
  head/stand/i386/zfsloader/Makefile.depend
  head/stand/sparc64/zfsloader/Makefile
Modified:
  head/stand/common/paths.h
  head/stand/i386/Makefile
  head/stand/i386/loader/Makefile
  head/stand/i386/zfsboot/zfsboot.c
  head/stand/loader.mk
  head/stand/sparc64/Makefile
  head/stand/sparc64/loader/Makefile

Modified: head/stand/common/paths.h
==============================================================================
--- head/stand/common/paths.h	Fri Jul 20 02:25:39 2018	(r336531)
+++ head/stand/common/paths.h	Fri Jul 20 05:17:37 2018	(r336532)
@@ -33,7 +33,6 @@
 #define PATH_CONFIG	"/boot/config"
 #define PATH_LOADER	"/boot/loader"
 #define PATH_LOADER_EFI	"/boot/loader.efi"
-#define PATH_LOADER_ZFS	"/boot/zfsloader"
 #define PATH_KERNEL	"/boot/kernel/kernel"
 
 #endif /* _PATHS_H_ */

Modified: head/stand/i386/Makefile
==============================================================================
--- head/stand/i386/Makefile	Fri Jul 20 02:25:39 2018	(r336531)
+++ head/stand/i386/Makefile	Fri Jul 20 05:17:37 2018	(r336532)
@@ -18,6 +18,6 @@ SUBDIR.yes+=	pxeldr
 SUBDIR.yes+=	kgzldr
 .endif
 
-SUBDIR.${MK_ZFS}+=	zfsboot gptzfsboot zfsloader
+SUBDIR.${MK_ZFS}+=	zfsboot gptzfsboot
 
 .include <bsd.subdir.mk>

Modified: head/stand/i386/loader/Makefile
==============================================================================
--- head/stand/i386/loader/Makefile	Fri Jul 20 02:25:39 2018	(r336531)
+++ head/stand/i386/loader/Makefile	Fri Jul 20 05:17:37 2018	(r336532)
@@ -1,5 +1,7 @@
 # $FreeBSD$
 
+HAVE_ZFS=		${MK_ZFS}
+
 LOADER_NET_SUPPORT?=	yes
 LOADER_NFS_SUPPORT?=	yes
 LOADER_TFTP_SUPPORT?=	yes
@@ -62,6 +64,9 @@ ${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN}
 ${LOADER}.bin: ${LOADER}.sym
 	strip -R .comment -R .note -o ${.TARGET} ${.ALLSRC}
 
+.if ${MK_ZFS} == "yes"
+SYMLINKS=	${BINDIR}/${LOADER} ${BINDIR}/zfs${LOADER}
+.endif
 FILES+=	${LOADER}
 # XXX INSTALLFLAGS_loader= -b
 FILESMODE_${LOADER}= ${BINMODE} -b

Modified: head/stand/i386/zfsboot/zfsboot.c
==============================================================================
--- head/stand/i386/zfsboot/zfsboot.c	Fri Jul 20 02:25:39 2018	(r336531)
+++ head/stand/i386/zfsboot/zfsboot.c	Fri Jul 20 05:17:37 2018	(r336532)
@@ -848,7 +848,7 @@ main(void)
      */
 
     if (autoboot && !*kname) {
-	memcpy(kname, PATH_LOADER_ZFS, sizeof(PATH_LOADER_ZFS));
+	memcpy(kname, PATH_LOADER, sizeof(PATH_LOADER));
 	if (!keyhit(3)) {
 	    load();
 	    memcpy(kname, PATH_KERNEL, sizeof(PATH_KERNEL));

Modified: head/stand/loader.mk
==============================================================================
--- head/stand/loader.mk	Fri Jul 20 02:25:39 2018	(r336531)
+++ head/stand/loader.mk	Fri Jul 20 05:17:37 2018	(r336532)
@@ -124,7 +124,7 @@ CFLAGS+= -DLOADER_GPT_SUPPORT
 CFLAGS+= -DLOADER_MBR_SUPPORT
 .endif
 
-.if defined(HAVE_ZFS)
+.if ${HAVE_ZFS:Uno} == "yes"
 CFLAGS+=	-DLOADER_ZFS_SUPPORT
 CFLAGS+=	-I${ZFSSRC}
 CFLAGS+=	-I${SYSDIR}/cddl/boot/zfs

Modified: head/stand/sparc64/Makefile
==============================================================================
--- head/stand/sparc64/Makefile	Fri Jul 20 02:25:39 2018	(r336531)
+++ head/stand/sparc64/Makefile	Fri Jul 20 05:17:37 2018	(r336532)
@@ -5,6 +5,6 @@ NO_OBJ=t
 .include <bsd.init.mk>
 
 SUBDIR.yes=	boot1 loader
-SUBDIR.${MK_ZFS}+=zfsboot zfsloader
+SUBDIR.${MK_ZFS}+=zfsboot
 
 .include <bsd.subdir.mk>

Modified: head/stand/sparc64/loader/Makefile
==============================================================================
--- head/stand/sparc64/loader/Makefile	Fri Jul 20 02:25:39 2018	(r336531)
+++ head/stand/sparc64/loader/Makefile	Fri Jul 20 05:17:37 2018	(r336532)
@@ -1,5 +1,7 @@
 # $FreeBSD$
 
+HAVE_ZFS=		${MK_ZFS}
+
 LOADER_DISK_SUPPORT?=	yes
 LOADER_UFS_SUPPORT?=	yes
 LOADER_CD9660_SUPPORT?=	yes
@@ -39,6 +41,10 @@ HELP_FILES=	${.CURDIR}/help.sparc64
 .include	"${BOOTSRC}/loader.mk"
 
 LDFLAGS+=	-static
+
+.if ${MK_ZFS} == "yes"
+SYMLINKS=	${BINDIR}/loader ${BINDIR}/zfsloader
+.endif
 
 # Open Firmware standalone support library
 LIBOFW=		${BOOTOBJ}/ofw/libofw/libofw.a


More information about the svn-src-head mailing list