Fix ia64 build failures in EFI platform

The MFC of the recent EFI work to stable/10 caused build breakage
under ia64.

It was not apparent that there was EFI code outside the EFI tree as
this is not the case in HEAD, however in stable/10 there is for ia64.

This change does the following:
* Re-enables libefi for ia64 under gcc.
* Adds the ignore for unsupported pragma's when building libefi for ia64.
* Adds the missing parameter to efi_handle_lookup in the ia64 loader.

This is a direct commit as ia64 is no longer supported after 10.x

Approved by:	re (marius)
Sponsored by:	Multiplay
This commit is contained in:
smh 2016-02-11 17:56:09 +00:00
parent b92c9d3353
commit a4298d06ff
3 changed files with 12 additions and 1 deletions

View File

@ -11,5 +11,9 @@ SUBDIR+= libefi loader boot1
.endif # ${COMPILER_TYPE} != "gcc"
.if ${MACHINE_CPUARCH} == "ia64"
SUBDIR+= libefi
.endif
.include <bsd.subdir.mk>

View File

@ -1,5 +1,7 @@
# $FreeBSD$
.include <bsd.own.mk>
LIB= efi
INTERNALLIB=
WARNS?= 2
@ -7,6 +9,10 @@ WARNS?= 2
SRCS= delay.c efi_console.c efinet.c efipart.c errno.c handles.c \
libefi.c time.c
.if ${MACHINE_CPUARCH} == "ia64"
IGNORE_PRAGMA= 1
.endif
.if ${MACHINE_ARCH} == "amd64"
CFLAGS+= -fPIC -mno-red-zone
.endif

View File

@ -179,7 +179,8 @@ main(int argc, CHAR16 *argv[])
BS->HandleProtocol(IH, &imgid, (VOID**)&img);
bzero(&currdev, sizeof(currdev));
efi_handle_lookup(img->DeviceHandle, &currdev.d_dev, &currdev.d_unit);
efi_handle_lookup(img->DeviceHandle, &currdev.d_dev,
&currdev.d_unit, NULL);
currdev.d_type = currdev.d_dev->dv_type;
env_setenv("loaddev", EV_VOLATILE, ia64_fmtdev(&currdev), env_noset,