git: 90c1ca326de1 - stable/13 - EFI secure boot VECTX related changes

From: Warner Losh <imp_at_FreeBSD.org>
Date: Tue, 24 Jan 2023 22:09:48 UTC
The branch stable/13 has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=90c1ca326de1931c87632fa0351b7fd39e26fe91

commit 90c1ca326de1931c87632fa0351b7fd39e26fe91
Author:     Eric van Gyzen <vangyzen@FreeBSD.org>
AuthorDate: 2021-04-30 17:53:45 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-01-24 21:49:16 +0000

    EFI secure boot VECTX related changes
    
    When VECTX is enabled as a kernel option and non-EFI loaders are
    built, many reads will fail due to the mis-match of whether
    LOADER_VERIEXEC_VECTX or not in readin.h.  Source that includes
    bootstrap.h must ensure the kernel option agrees with the compile
    time CFLAGS in the various make related files.
    
    Submitted by:   bret_ketchum@dell.com (original revision)
    Reviewed by:    sjg, bdrewery, dab, bret_ketchum@dell.com
    MFC after:      1 week
    Sponsored by:   Dell EMC Isilon
    Differential Revision: https://reviews.freebsd.org/D29993
    
    (cherry picked from commit eda28feb2e070e21db3d50b3fc177f88380b8fb4)
---
 stand/efi/boot1/Makefile        |  2 ++
 stand/efi/fdt/Makefile          |  2 ++
 stand/efi/libefi/Makefile       |  2 ++
 stand/fdt/Makefile              |  2 ++
 stand/ficl.mk                   |  4 +---
 stand/i386/libfirewire/Makefile |  2 ++
 stand/i386/libi386/Makefile     |  2 ++
 stand/liblua/Makefile           |  5 ++---
 stand/loader.mk                 | 11 +----------
 stand/veriexec.mk               |  9 +++++++++
 10 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/stand/efi/boot1/Makefile b/stand/efi/boot1/Makefile
index 6ed777727552..7e3d762c768d 100644
--- a/stand/efi/boot1/Makefile
+++ b/stand/efi/boot1/Makefile
@@ -53,6 +53,8 @@ CFLAGS+=	-DEFI_UFS_BOOT
 CFLAGS+=	-DEFI_DEBUG
 .endif
 
+.include	"${BOOTSRC}/veriexec.mk"
+
 # Always add MI sources and REGULAR efi loader bits
 .PATH:		${EFISRC}/loader/arch/${MACHINE}
 .PATH:		${EFISRC}/loader
diff --git a/stand/efi/fdt/Makefile b/stand/efi/fdt/Makefile
index 8166f481dc99..7f69ce1b3f11 100644
--- a/stand/efi/fdt/Makefile
+++ b/stand/efi/fdt/Makefile
@@ -9,6 +9,8 @@ WARNS?=		6
 
 SRCS=		efi_fdt.c
 
+.include	"${BOOTSRC}/veriexec.mk"
+
 # EFI library headers
 CFLAGS+=	-I${EFISRC}/include
 CFLAGS+=	-I${EFISRC}/include/${MACHINE}
diff --git a/stand/efi/libefi/Makefile b/stand/efi/libefi/Makefile
index 88f6d3fa0826..8f1a30d86900 100644
--- a/stand/efi/libefi/Makefile
+++ b/stand/efi/libefi/Makefile
@@ -68,4 +68,6 @@ CFLAGS+= ${FORMAT_EXTENSIONS}
 
 CFLAGS+= -DTERM_EMU
 
+.include "${BOOTSRC}/veriexec.mk"
+
 .include <bsd.lib.mk>
diff --git a/stand/fdt/Makefile b/stand/fdt/Makefile
index 3eee143a9433..e0fd2dbb4e8d 100644
--- a/stand/fdt/Makefile
+++ b/stand/fdt/Makefile
@@ -17,4 +17,6 @@ CFLAGS+=	-I${SYSDIR}/contrib/libfdt/ -I${LDRSRC}
 
 CFLAGS+=	-Wformat -Wall
 
+.include "${BOOTSRC}/veriexec.mk"
+
 .include <bsd.lib.mk>
diff --git a/stand/ficl.mk b/stand/ficl.mk
index caa4aab951c3..2adbccb34f9d 100644
--- a/stand/ficl.mk
+++ b/stand/ficl.mk
@@ -17,6 +17,4 @@ CFLAGS+=	-fPIC
 CFLAGS+=	-I${FICLSRC} -I${FICLSRC}/${FICL_CPUARCH} -I${LDRSRC}
 CFLAGS+=	-DBF_DICTSIZE=30000
 
-.if ${MK_LOADER_VERIEXEC} != "no"
-CFLAGS+= -DLOADER_VERIEXEC -I${SRCTOP}/lib/libsecureboot/h
-.endif
+.include	"${BOOTSRC}/veriexec.mk"
diff --git a/stand/i386/libfirewire/Makefile b/stand/i386/libfirewire/Makefile
index 6a34efd0acb3..bf42c26a918f 100644
--- a/stand/i386/libfirewire/Makefile
+++ b/stand/i386/libfirewire/Makefile
@@ -8,6 +8,8 @@ LIB=		firewire
 SRCS+=		firewire.c fwohci.c dconsole.c
 SRCS+=		dcons.c fwcrom.c
 
+.include	"${BOOTSRC}/veriexec.mk"
+
 CFLAGS+=	-D_BOOT
 
 CFLAGS+=	-I${LDRSRC}
diff --git a/stand/i386/libi386/Makefile b/stand/i386/libi386/Makefile
index 3dea78f16929..1b23cd53d137 100644
--- a/stand/i386/libi386/Makefile
+++ b/stand/i386/libi386/Makefile
@@ -17,6 +17,8 @@ CFLAGS+= -I${ZFSSRC}
 .PATH:	${SYSDIR}/teken
 SRCS+=	teken.c
 
+.include "${BOOTSRC}/veriexec.mk"
+
 BOOT_COMCONSOLE_PORT?= 0x3f8
 CFLAGS+=	-DCOMPORT=${BOOT_COMCONSOLE_PORT}
 
diff --git a/stand/liblua/Makefile b/stand/liblua/Makefile
index 68fa2da64fdb..385f1493bd38 100644
--- a/stand/liblua/Makefile
+++ b/stand/liblua/Makefile
@@ -40,8 +40,7 @@ CFLAGS.lutils.c+= -I${SRCTOP}/sys/teken -I${SRCTOP}/contrib/pnglite
 .if ${MACHINE_CPUARCH} == "amd64" && ${DO32:U0} == 0
 CFLAGS+=	-fPIC
 .endif
-.if ${MK_LOADER_VERIEXEC} == "yes"
-CFLAGS+= -I${SRCTOP}/lib/libsecureboot/h -DLOADER_VERIEXEC
-.endif
+
+.include "${BOOTSRC}/veriexec.mk"
 
 .include <bsd.lib.mk>
diff --git a/stand/loader.mk b/stand/loader.mk
index 2246b42b91d8..e71508a1cefc 100644
--- a/stand/loader.mk
+++ b/stand/loader.mk
@@ -90,16 +90,7 @@ SRCS+=	interp_simple.c
 .error Unknown interpreter ${LOADER_INTERP}
 .endif
 
-.if ${MK_LOADER_VERIEXEC} != "no"
-CFLAGS+= -DLOADER_VERIEXEC -I${SRCTOP}/lib/libsecureboot/h
-.if ${MK_LOADER_VERIEXEC_VECTX} != "no"
-CFLAGS+= -DLOADER_VERIEXEC_VECTX
-.endif
-.endif
-
-.if ${MK_LOADER_VERIEXEC_PASS_MANIFEST} != "no"
-CFLAGS+= -DLOADER_VERIEXEC_PASS_MANIFEST -I${SRCTOP}/lib/libsecureboot/h
-.endif
+.include "${BOOTSRC}/veriexec.mk"
 
 .if defined(BOOT_PROMPT_123)
 CFLAGS+=	-DBOOT_PROMPT_123
diff --git a/stand/veriexec.mk b/stand/veriexec.mk
new file mode 100644
index 000000000000..930e933be0a9
--- /dev/null
+++ b/stand/veriexec.mk
@@ -0,0 +1,9 @@
+.if ${MK_LOADER_VERIEXEC} != "no"
+CFLAGS+= -DLOADER_VERIEXEC -I${SRCTOP}/lib/libsecureboot/h
+.if ${MK_LOADER_VERIEXEC_VECTX} != "no"
+CFLAGS+= -DLOADER_VERIEXEC_VECTX
+.endif
+.if ${MK_LOADER_VERIEXEC_PASS_MANIFEST} != "no"
+CFLAGS+= -DLOADER_VERIEXEC_PASS_MANIFEST
+.endif
+.endif