stand/efi: Add a 32-bit variant of libefi

In preparation for supporting 64-bit machines with 32-bit UEFI firmware,
add a 32-bit variant of libefi since we need to compile both the 64-bit
version and the 32-bit version at the same time.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1098
This commit is contained in:
Ahmad Khalifa 2024-05-14 22:37:13 +03:00 committed by Warner Losh
parent fe3f792f9a
commit f0d5b1bdf0
4 changed files with 13 additions and 3 deletions

View File

@ -66,6 +66,7 @@ SUBDIR_DEPEND_${MACHINE}+= libofw
SUBDIR+=${_x}
.if defined(LIB32LIST) && ${LIB32LIST:M${_x}}
SUBDIR+=${_x}32
INTERP_DEPENDS+=${_x}32
.endif
.if ${_x} != "libsa"
SUBDIR_DEPEND_${_x}+= libsa

View File

@ -40,7 +40,14 @@ WARNS?= 1
BOOTSRC= ${SRCTOP}/stand
EFISRC= ${BOOTSRC}/efi
EFIINC= ${EFISRC}/include
# For amd64, there's a bit of mixed bag. Some of the tree (i386, lib*32) is
# built 32-bit and some 64-bit (lib*, efi). Centralize all the 32-bit magic here
# and activate it when DO32 is explicitly defined to be 1.
.if ${MACHINE_ARCH} == "amd64" && ${DO32:U0} == 1
EFIINCMD= ${EFIINC}/i386
.else
EFIINCMD= ${EFIINC}/${MACHINE}
.endif
FDTSRC= ${BOOTSRC}/fdt
FICLSRC= ${BOOTSRC}/ficl
LDRSRC= ${BOOTSRC}/common
@ -130,9 +137,6 @@ CFLAGS+= -m32 -mcpu=powerpc -mbig-endian
CFLAGS+= -m32 -mcpu=powerpc -mlittle-endian
.endif
# For amd64, there's a bit of mixed bag. Some of the tree (i386, lib*32) is
# build 32-bit and some 64-bit (lib*, efi). Centralize all the 32-bit magic here
# and activate it when DO32 is explicitly defined to be 1.
.if ${MACHINE_ARCH} == "amd64" && ${DO32:U0} == 1
CFLAGS+= -m32
# LD_FLAGS is passed directly to ${LD}, not via ${CC}:

View File

@ -3,6 +3,7 @@ NO_OBJ=t
.include <bsd.init.mk>
SUBDIR.yes+= libefi
SUBDIR.${MK_LOADER_IA32}+= libefi32
SUBDIR.${MK_FDT}+= fdt
SUBDIR.yes+= .WAIT

View File

@ -0,0 +1,4 @@
DO32=1
.PATH: ${.CURDIR}/../libefi
.include "${.CURDIR}/../libefi/Makefile"