summaryrefslogtreecommitdiff
path: root/yocto-poky/meta/recipes-bsp/gummiboot
diff options
context:
space:
mode:
Diffstat (limited to 'yocto-poky/meta/recipes-bsp/gummiboot')
-rw-r--r--yocto-poky/meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch45
-rw-r--r--yocto-poky/meta/recipes-bsp/gummiboot/gummiboot_git.bb34
2 files changed, 79 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch b/yocto-poky/meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch
new file mode 100644
index 000000000..49f55930d
--- /dev/null
+++ b/yocto-poky/meta/recipes-bsp/gummiboot/gummiboot/fix-objcopy.patch
@@ -0,0 +1,45 @@
+From 0f7f9e3bb1d0e1b93f3ad8a1d5d7bdd3fbf27494 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 27 Mar 2014 07:20:33 +0000
+Subject: [PATCH] Makefile.am: use objcopy from the env
+
+It uses the "objcopy" directly, which is not suitable for cross compile.
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile.am | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+Index: git/Makefile.am
+===================================================================
+--- git.orig/Makefile.am
++++ git/Makefile.am
+@@ -19,6 +19,8 @@
+ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+ AM_MAKEFLAGS = --no-print-directory
+
++OBJCOPY ?= objcopy
++
+ gummibootlibdir = $(prefix)/lib/gummiboot
+
+ AM_CPPFLAGS = -include config.h
+@@ -148,7 +150,7 @@ $(gummiboot_solib): $(gummiboot_objects)
+ .DELETE_ON_ERROR: $(gummboot_solib)
+
+ $(gummiboot): $(gummiboot_solib)
+- $(AM_V_GEN) objcopy -j .text -j .sdata -j .data -j .dynamic \
++ $(AM_V_GEN) $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \
+ -j .dynsym -j .rel -j .rela -j .reloc \
+ --target=efi-app-$(ARCH) $< $@
+
+@@ -183,7 +185,7 @@ $(stub_solib): $(stub_objects)
+ .DELETE_ON_ERROR: $(gummboot_solib)
+
+ $(stub): $(stub_solib)
+- $(AM_V_GEN) objcopy -j .text -j .sdata -j .data -j .dynamic \
++ $(AM_V_GEN) $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \
+ -j .dynsym -j .rel -j .rela -j .reloc \
+ --target=efi-app-$(ARCH) $< $@
+
diff --git a/yocto-poky/meta/recipes-bsp/gummiboot/gummiboot_git.bb b/yocto-poky/meta/recipes-bsp/gummiboot/gummiboot_git.bb
new file mode 100644
index 000000000..91c3db930
--- /dev/null
+++ b/yocto-poky/meta/recipes-bsp/gummiboot/gummiboot_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Gummiboot is a simple UEFI boot manager which executes configured EFI images."
+HOMEPAGE = "http://freedesktop.org/wiki/Software/gummiboot"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "gnu-efi util-linux"
+
+inherit autotools pkgconfig
+inherit deploy
+
+PV = "48+git${SRCPV}"
+SRCREV = "2bcd919c681c952eb867ef1bdb458f1bc49c2d55"
+SRC_URI = "git://anongit.freedesktop.org/gummiboot \
+ file://fix-objcopy.patch \
+ "
+
+# Note: Add COMPATIBLE_HOST here is only because it depends on gnu-efi
+# which has set the COMPATIBLE_HOST, the gummiboot itself may work on
+# more hosts.
+COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--disable-manpages --with-efi-includedir=${STAGING_INCDIR} \
+ --with-efi-ldsdir=${STAGING_LIBDIR} \
+ --with-efi-libdir=${STAGING_LIBDIR}"
+
+EXTRA_OEMAKE += "gummibootlibdir=${libdir}/gummiboot"
+
+do_deploy () {
+ install ${B}/gummiboot*.efi ${DEPLOYDIR}
+}
+addtask deploy before do_build after do_compile