svn commit: r337806 - in head: share/mk stand stand/efi stand/efi/loader stand/efi/loader_4th stand/efi/loader_lua stand/efi/loader_simp stand/i386 stand/i386/loader stand/i386/loader_4th stand/i38...
Warner Losh
imp at FreeBSD.org
Tue Aug 14 18:44:45 UTC 2018
Author: imp
Date: Tue Aug 14 18:44:41 2018
New Revision: 337806
URL: https://svnweb.freebsd.org/changeset/base/337806
Log:
Create a loader for each interpreter for x86 BIOS and all EFI
Create loader_{4th,lua,simp}{,.efi}. All of these are installed by
default. Create LOADER_DEFAULT_INTERP to specify the default
interpreter when no other is specified. LOADER_INTERP is the current
interpreter language building. Turn building of lua on by default to
match 4th. simploader is a simplified loader build w/o any interpreter
language (but with a simple loader). This is the historic behavir you
got with WITHOUT_FORTH. Make a hard link to the default loader. This
has to be a hard link rather than the more desirable soft link because
older zfsboot blocks don't support symlinks.
RelNotes: Yes
Differential Revision: https://reviews.freebsd.org/D16705
Added:
head/stand/efi/loader_4th/
head/stand/efi/loader_4th/Makefile (contents, props changed)
head/stand/efi/loader_lua/
head/stand/efi/loader_lua/Makefile (contents, props changed)
head/stand/efi/loader_simp/
head/stand/efi/loader_simp/Makefile (contents, props changed)
head/stand/i386/loader_4th/
head/stand/i386/loader_4th/Makefile (contents, props changed)
head/stand/i386/loader_lua/
head/stand/i386/loader_lua/Makefile (contents, props changed)
head/stand/i386/loader_simp/
head/stand/i386/loader_simp/Makefile (contents, props changed)
Modified:
head/share/mk/src.opts.mk
head/stand/defs.mk
head/stand/efi/Makefile
head/stand/efi/loader/Makefile
head/stand/i386/Makefile
head/stand/i386/loader/Makefile
head/stand/i386/pxeldr/Makefile
head/stand/loader.mk
Modified: head/share/mk/src.opts.mk
==============================================================================
--- head/share/mk/src.opts.mk Tue Aug 14 18:35:33 2018 (r337805)
+++ head/share/mk/src.opts.mk Tue Aug 14 18:44:41 2018 (r337806)
@@ -130,6 +130,7 @@ __DEFAULT_YES_OPTIONS = \
LIBTHR \
LLVM_COV \
LOADER_GELI \
+ LOADER_LUA \
LOADER_OFW \
LOADER_UBOOT \
LOCALES \
@@ -197,7 +198,6 @@ __DEFAULT_NO_OPTIONS = \
LIBSOFT \
LOADER_FIREWIRE \
LOADER_FORCE_LE \
- LOADER_LUA \
NAND \
OFED_EXTRA \
OPENLDAP \
Modified: head/stand/defs.mk
==============================================================================
--- head/stand/defs.mk Tue Aug 14 18:35:33 2018 (r337805)
+++ head/stand/defs.mk Tue Aug 14 18:44:41 2018 (r337806)
@@ -146,6 +146,18 @@ CFLAGS+= -mlittle-endian
.endif
.endif
+#
+# Have a sensible default
+#
+.if ${MK_FORTH} == "yes"
+LOADER_DEFAULT_INTERP?=4th
+.elif ${MK_LOADER_LUA} == "yes"
+LOADER_DEFAULT_INTERP?=lua
+.else
+LOADER_DEFAULT_INTERP?=simp
+.endif
+LOADER_INTERP?=${LOADER_DEFAULT_INTERP}
+
# Make sure we use the machine link we're about to create
CFLAGS+=-I.
Modified: head/stand/efi/Makefile
==============================================================================
--- head/stand/efi/Makefile Tue Aug 14 18:35:33 2018 (r337805)
+++ head/stand/efi/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -9,7 +9,10 @@ NO_OBJ=t
.if ${COMPILER_TYPE} != "gcc" || ${COMPILER_VERSION} >= 40500
SUBDIR.${MK_FDT}+= fdt
-SUBDIR.yes+= libefi loader boot1
+SUBDIR.yes+= libefi boot1
+SUBDIR.${MK_FORTH}+= loader_4th
+SUBDIR.${MK_LOADER_LUA}+= loader_lua
+SUBDIR.yes+= loader_simp
.endif # ${COMPILER_TYPE} != "gcc" || ${COMPILER_VERSION} >= 40500
Modified: head/stand/efi/loader/Makefile
==============================================================================
--- head/stand/efi/loader/Makefile Tue Aug 14 18:35:33 2018 (r337805)
+++ head/stand/efi/loader/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -8,7 +8,8 @@ LOADER_EXT2FS_SUPPORT?= no
.include <bsd.init.mk>
-PROG= loader.sym
+LOADER?= loader_${LOADER_INTERP}
+PROG= ${LOADER}.sym
INTERNALPROG=
WARNS?= 3
@@ -24,6 +25,7 @@ SRCS= autoload.c \
smbios.c \
vers.c
+CFLAGS+= -I${.CURDIR}/../loader
.if ${MK_ZFS} != "no"
CFLAGS+= -I${ZFSSRC}
CFLAGS+= -DEFI_ZFS_BOOT
@@ -41,10 +43,11 @@ CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitializ
# warnings for now.
CWARNFLAGS.main.c+= -Wno-format
-.PATH: ${.CURDIR}/arch/${MACHINE}
-# For smbios.c
+.PATH: ${.CURDIR}/../loader
+.PATH: ${.CURDIR}/../loader/arch/${MACHINE}
+# For smbios.c XXX need to abstract properly
.PATH: ${BOOTSRC}/i386/libi386
-.include "${.CURDIR}/arch/${MACHINE}/Makefile.inc"
+.include "${.CURDIR}/../loader/arch/${MACHINE}/Makefile.inc"
CFLAGS+= -I${.CURDIR}
CFLAGS+= -I${.CURDIR}/arch/${MACHINE}
@@ -78,20 +81,21 @@ HAVE_BCACHE= yes
CFLAGS+= -DEFI_STAGING_SIZE=${EFI_STAGING_SIZE}
.endif
+NEWVERSWHAT= "EFI loader" ${MACHINE}
+VERSION_FILE= ${.CURDIR}/../loader/version
+
# Always add MI sources
.include "${BOOTSRC}/loader.mk"
-FILES+= loader.efi
-FILESMODE_loader.efi= ${BINMODE}
+FILES+= ${LOADER}.efi
+FILESMODE_${LOADER}.efi= ${BINMODE}
-LDSCRIPT= ${.CURDIR}/arch/${MACHINE}/ldscript.${MACHINE}
+LDSCRIPT= ${.CURDIR}/../loader/arch/${MACHINE}/ldscript.${MACHINE}
LDFLAGS+= -Wl,-T${LDSCRIPT},-Bsymbolic,-znotext -shared
CLEANFILES+= loader.efi
-NEWVERSWHAT= "EFI loader" ${MACHINE}
-
-loader.efi: ${PROG}
+${LOADER}.efi: ${PROG}
if ${NM} ${.ALLSRC} | grep ' U '; then \
echo "Undefined symbols in ${.ALLSRC}"; \
exit 1; \
Added: head/stand/efi/loader_4th/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/stand/efi/loader_4th/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=4th
+
+.include "../loader/Makefile"
+
Added: head/stand/efi/loader_lua/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/stand/efi/loader_lua/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=lua
+
+.include "../loader/Makefile"
+
Added: head/stand/efi/loader_simp/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/stand/efi/loader_simp/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=simp
+
+.include "../loader/Makefile"
+
Modified: head/stand/i386/Makefile
==============================================================================
--- head/stand/i386/Makefile Tue Aug 14 18:35:33 2018 (r337805)
+++ head/stand/i386/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -9,7 +9,9 @@ SUBDIR.yes= mbr pmbr boot0 boot0sio btx boot2 cdboot g
SUBDIR.${MK_LOADER_FIREWIRE}+= libfirewire
-SUBDIR.yes+= loader
+SUBDIR.${MK_FORTH}+= loader_4th
+SUBDIR.${MK_LOADER_LUA}+= loader_lua
+SUBDIR.yes+= loader_simp
# special boot programs, 'self-extracting boot2+loader'
SUBDIR.yes+= pxeldr
Modified: head/stand/i386/loader/Makefile
==============================================================================
--- head/stand/i386/loader/Makefile Tue Aug 14 18:35:33 2018 (r337805)
+++ head/stand/i386/loader/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -14,7 +14,7 @@ LOADER_BZIP2_SUPPORT?= yes
.include <bsd.init.mk>
-LOADER?= loader
+LOADER?= loader_${LOADER_INTERP}
PROG= ${LOADER}.sym
INTERNALPROG=
NEWVERSWHAT?= "bootstrap loader" x86
@@ -64,11 +64,13 @@ ${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN}
${LOADER}.bin: ${LOADER}.sym
strip -R .comment -R .note -o ${.TARGET} ${.ALLSRC}
-.if ${MK_ZFS} == "yes"
-LINKS= ${BINDIR}/${LOADER} ${BINDIR}/zfs${LOADER}
+.if ${MK_ZFS} == "yes" && ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP}
+LINKS+= ${BINDIR}/${LOADER} ${BINDIR}/zfsloader
.endif
+.if ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP}
+LINKS+= ${BINDIR}/${LOADER} ${BINDIR}/loader
+.endif
FILES+= ${LOADER}
-# XXX INSTALLFLAGS_loader= -b
FILESMODE_${LOADER}= ${BINMODE} -b
# XXX crt0.o needs to be first for pxeboot(8) to work
Added: head/stand/i386/loader_4th/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/stand/i386/loader_4th/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=4th
+
+.include "../loader/Makefile"
+
Added: head/stand/i386/loader_lua/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/stand/i386/loader_lua/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=lua
+
+.include "../loader/Makefile"
+
Added: head/stand/i386/loader_simp/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/stand/i386/loader_simp/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=simp
+
+.include "../loader/Makefile"
+
Modified: head/stand/i386/pxeldr/Makefile
==============================================================================
--- head/stand/i386/pxeldr/Makefile Tue Aug 14 18:35:33 2018 (r337805)
+++ head/stand/i386/pxeldr/Makefile Tue Aug 14 18:44:41 2018 (r337806)
@@ -24,7 +24,8 @@ CFLAGS+=-DALWAYS_SERIAL
CFLAGS+=-I${BOOTSRC}/i386/common
-LOADERBIN= ${BOOTOBJ}/i386/loader/loader.bin
+L=${LOADER_DEFAULT_INTERP}
+LOADERBIN= ${BOOTOBJ}/i386/loader_${L}/loader_${L}.bin
CLEANFILES+= ${BOOT}.tmp
Modified: head/stand/loader.mk
==============================================================================
--- head/stand/loader.mk Tue Aug 14 18:35:33 2018 (r337805)
+++ head/stand/loader.mk Tue Aug 14 18:44:41 2018 (r337806)
@@ -57,19 +57,20 @@ SRCS+= isapnp.c
SRCS+= pnp.c
.endif
-# Forth interpreter
-.if ${MK_LOADER_LUA} != "no"
+.if ${LOADER_INTERP} == "lua"
SRCS+= interp_lua.c
.include "${BOOTSRC}/lua.mk"
LDR_INTERP= ${LIBLUA}
LDR_INTERP32= ${LIBLUA32}
-.elif ${MK_FORTH} != "no"
+.elif ${LOADER_INTERP} == "4th"
SRCS+= interp_forth.c
.include "${BOOTSRC}/ficl.mk"
LDR_INTERP= ${LIBFICL}
LDR_INTERP32= ${LIBFICL32}
-.else
+.elif ${LOADER_INTERP} == "simp"
SRCS+= interp_simple.c
+.else
+.error Unknown interpreter ${LOADER_INTERP}
.endif
.if defined(BOOT_PROMPT_123)
More information about the svn-src-head
mailing list