summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2016-02-11 17:56:09 +0000
committersmh <smh@FreeBSD.org>2016-02-11 17:56:09 +0000
commita4298d06ff2c7a1d71ae0e7afb0020724d8866f2 (patch)
tree0270e2e35352bf06d9146a427e7969e974bc2745
parentb92c9d3353391d51dcfcf3dbc78152c3977e42e4 (diff)
downloadFreeBSD-src-a4298d06ff2c7a1d71ae0e7afb0020724d8866f2.zip
FreeBSD-src-a4298d06ff2c7a1d71ae0e7afb0020724d8866f2.tar.gz
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
-rw-r--r--sys/boot/efi/Makefile4
-rw-r--r--sys/boot/efi/libefi/Makefile6
-rw-r--r--sys/boot/ia64/efi/main.c3
3 files changed, 12 insertions, 1 deletions
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 <bsd.subdir.mk>
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 <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
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,
OpenPOWER on IntegriCloud