Only build EFI components on supported compilers

As the in-tree GCC does not support __attribute__((ms_abi)) EFI can only
be built with Clang.

The EFI loader and boot1 validated this, but unused libefi was still built
causing issues under GCC after warnings where enabled by r293724.

Disable building all of EFI when the selected compiler is GCC.

MFC after:	2 weeks
X-MFC-With:	r293268
Sponsored by:	Multiplay
This commit is contained in:
Steven Hartland 2016-01-14 18:53:54 +00:00
parent 8171acf3ad
commit 445a2b570e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=294029
3 changed files with 6 additions and 12 deletions

View File

@ -2,7 +2,8 @@
.include <src.opts.mk>
SUBDIR= libefi
# In-tree GCC does not support __attribute__((ms_abi)).
.if ${COMPILER_TYPE} != "gcc"
.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm"
.if ${MK_FDT} != "no"
@ -13,7 +14,10 @@ SUBDIR+= fdt
.if ${MACHINE_CPUARCH} == "aarch64" || \
${MACHINE_CPUARCH} == "amd64" || \
${MACHINE_CPUARCH} == "arm"
SUBDIR+= loader boot1
SUBDIR+= libefi loader boot1
.endif
.endif # ${COMPILER_TYPE} != "gcc"
.include <bsd.subdir.mk>

View File

@ -4,9 +4,6 @@ MAN=
.include <bsd.own.mk>
# In-tree GCC does not support __attribute__((ms_abi)).
.if ${COMPILER_TYPE} != "gcc"
MK_SSP= no
PROG= boot1.sym
@ -96,8 +93,6 @@ boot1.efifat: boot1.efi
CLEANFILES= boot1.efi boot1.efifat
.endif # ${COMPILER_TYPE} != "gcc"
.include <bsd.prog.mk>
beforedepend ${OBJS}: machine

View File

@ -4,9 +4,6 @@ MAN=
.include <src.opts.mk>
# In-tree GCC does not support __attribute__((ms_abi)).
.if ${COMPILER_TYPE} != "gcc"
MK_SSP= no
PROG= loader.sym
@ -113,8 +110,6 @@ DPADD= ${LIBFICL} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} ${LIBSTAND} \
${LDSCRIPT}
LDADD= ${LIBFICL} ${LIBEFI} ${LIBFDT} ${LIBEFI_FDT} ${LIBSTAND}
.endif # ${COMPILER_TYPE} != "gcc"
.include <bsd.prog.mk>
beforedepend ${OBJS}: machine