From a4298d06ff2c7a1d71ae0e7afb0020724d8866f2 Mon Sep 17 00:00:00 2001 From: smh Date: Thu, 11 Feb 2016 17:56:09 +0000 Subject: 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 --- sys/boot/efi/Makefile | 4 ++++ sys/boot/efi/libefi/Makefile | 6 ++++++ sys/boot/ia64/efi/main.c | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'sys/boot') diff --git a/sys/boot/efi/Makefile b/sys/boot/efi/Makefile index acf5a49..89a3576 100644 --- a/sys/boot/efi/Makefile +++ b/sys/boot/efi/Makefile @@ -11,5 +11,9 @@ SUBDIR+= libefi loader boot1 .endif # ${COMPILER_TYPE} != "gcc" +.if ${MACHINE_CPUARCH} == "ia64" +SUBDIR+= libefi +.endif + .include diff --git a/sys/boot/efi/libefi/Makefile b/sys/boot/efi/libefi/Makefile index f87fbe9..880547e 100644 --- a/sys/boot/efi/libefi/Makefile +++ b/sys/boot/efi/libefi/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + 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 diff --git a/sys/boot/ia64/efi/main.c b/sys/boot/ia64/efi/main.c index ec12b42..ca99c63a 100644 --- a/sys/boot/ia64/efi/main.c +++ b/sys/boot/ia64/efi/main.c @@ -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, -- cgit v1.1