Page MenuHomeFreeBSD

D16705.id46673.diff
No OneTemporary

D16705.id46673.diff

Index: share/mk/src.opts.mk
===================================================================
--- share/mk/src.opts.mk
+++ share/mk/src.opts.mk
@@ -130,6 +130,7 @@
LIBTHR \
LLVM_COV \
LOADER_GELI \
+ LOADER_LUA \
LOADER_OFW \
LOADER_UBOOT \
LOCALES \
@@ -197,7 +198,6 @@
LIBSOFT \
LOADER_FIREWIRE \
LOADER_FORCE_LE \
- LOADER_LUA \
NAND \
OFED_EXTRA \
OPENLDAP \
Index: stand/defs.mk
===================================================================
--- stand/defs.mk
+++ stand/defs.mk
@@ -146,6 +146,18 @@
.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.
Index: stand/efi/Makefile
===================================================================
--- stand/efi/Makefile
+++ stand/efi/Makefile
@@ -9,7 +9,10 @@
.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
Index: stand/efi/loader/Makefile
===================================================================
--- stand/efi/loader/Makefile
+++ stand/efi/loader/Makefile
@@ -8,7 +8,8 @@
.include <bsd.init.mk>
-PROG= loader.sym
+LOADER?= loader_${LOADER_INTERP}
+PROG= ${LOADER}.sym
INTERNALPROG=
WARNS?= 3
@@ -24,6 +25,7 @@
smbios.c \
vers.c
+CFLAGS+= -I${.CURDIR}/../loader
.if ${MK_ZFS} != "no"
CFLAGS+= -I${ZFSSRC}
CFLAGS+= -DEFI_ZFS_BOOT
@@ -41,10 +43,11 @@
# 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 @@
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; \
Index: stand/efi/loader_4th/Makefile
===================================================================
--- /dev/null
+++ stand/efi/loader_4th/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=4th
+
+.include "../loader/Makefile"
+
Index: stand/efi/loader_lua/Makefile
===================================================================
--- /dev/null
+++ stand/efi/loader_lua/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=lua
+
+.include "../loader/Makefile"
+
Index: stand/efi/loader_simp/Makefile
===================================================================
--- /dev/null
+++ stand/efi/loader_simp/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=simp
+
+.include "../loader/Makefile"
+
Index: stand/i386/Makefile
===================================================================
--- stand/i386/Makefile
+++ stand/i386/Makefile
@@ -9,7 +9,9 @@
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
Index: stand/i386/loader/Makefile
===================================================================
--- stand/i386/loader/Makefile
+++ stand/i386/loader/Makefile
@@ -14,7 +14,7 @@
.include <bsd.init.mk>
-LOADER?= loader
+LOADER?= loader_${LOADER_INTERP}
PROG= ${LOADER}.sym
INTERNALPROG=
NEWVERSWHAT?= "bootstrap loader" x86
@@ -64,11 +64,13 @@
${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
Index: stand/i386/loader_4th/Makefile
===================================================================
--- /dev/null
+++ stand/i386/loader_4th/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=4th
+
+.include "../loader/Makefile"
+
Index: stand/i386/loader_lua/Makefile
===================================================================
--- /dev/null
+++ stand/i386/loader_lua/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=lua
+
+.include "../loader/Makefile"
+
Index: stand/i386/loader_simp/Makefile
===================================================================
--- /dev/null
+++ stand/i386/loader_simp/Makefile
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+LOADER_INTERP=simp
+
+.include "../loader/Makefile"
+
Index: stand/i386/pxeldr/Makefile
===================================================================
--- stand/i386/pxeldr/Makefile
+++ stand/i386/pxeldr/Makefile
@@ -24,7 +24,7 @@
CFLAGS+=-I${BOOTSRC}/i386/common
-LOADERBIN= ${BOOTOBJ}/i386/loader/loader.bin
+LOADERBIN= ${BOOTOBJ}/i386/${LOADER_DEFAULT_INTERP}loader/loader_${LOADER_DEFAULT_INTERP}.bin
CLEANFILES+= ${BOOT}.tmp
Index: stand/loader.mk
===================================================================
--- stand/loader.mk
+++ stand/loader.mk
@@ -57,19 +57,20 @@
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)

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 8, 1:08 AM (8 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28461804
Default Alt Text
D16705.id46673.diff (6 KB)

Event Timeline