mirror of
https://git.yoctoproject.org/poky
synced 2026-03-17 04:39:40 +01:00
recipes-bsp: add gnu-efi recipe
gnu-efi is required by gummiboot. Imported from meta-intel, PR dropped, no new version available. (From OE-Core rev: fdb65c569db2b55023f9d1d72959e4e7d187a1d8) Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
798877eac9
commit
b588a243e7
@@ -0,0 +1,48 @@
|
||||
Fix parallel make failure for archives
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
The lib and gnuefi makefiles were using the lib.a() form which compiles
|
||||
and ar's as a pair instead of compiling all and then ar'ing which can
|
||||
parallelize better. This was resulting in build failures on larger values
|
||||
of -j.
|
||||
|
||||
See http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_toc.html#TOC105
|
||||
for details.
|
||||
|
||||
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
||||
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
||||
---
|
||||
---
|
||||
gnuefi/Makefile | 3 ++-
|
||||
lib/Makefile | 3 ++-
|
||||
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: gnu-efi-3.0/lib/Makefile
|
||||
===================================================================
|
||||
--- gnu-efi-3.0.orig/lib/Makefile
|
||||
+++ gnu-efi-3.0/lib/Makefile
|
||||
@@ -66,7 +66,8 @@ all: libsubdirs libefi.a
|
||||
libsubdirs:
|
||||
for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
|
||||
|
||||
-libefi.a: $(patsubst %,libefi.a(%),$(OBJS))
|
||||
+libefi.a: $(OBJS)
|
||||
+ $(AR) rv $@ $(OBJS)
|
||||
|
||||
clean:
|
||||
rm -f libefi.a *~ $(OBJS) */*.o
|
||||
Index: gnu-efi-3.0/gnuefi/Makefile
|
||||
===================================================================
|
||||
--- gnu-efi-3.0.orig/gnuefi/Makefile
|
||||
+++ gnu-efi-3.0/gnuefi/Makefile
|
||||
@@ -51,7 +51,8 @@ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
-libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS))
|
||||
+libgnuefi.a: $(OBJS)
|
||||
+ $(AR) rv $@ $(OBJS)
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETS) *~ *.o $(OBJS)
|
||||
22
meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch
Normal file
22
meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
Fix parallel make failure
|
||||
|
||||
Upstream-Status: Submitted [Maintainer directly]
|
||||
|
||||
Add a missing dependency which resulted in a race leading to failure
|
||||
on larger values of -j.
|
||||
|
||||
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
||||
|
||||
Index: gnu-efi-3.0/Makefile
|
||||
===================================================================
|
||||
--- gnu-efi-3.0.orig/Makefile
|
||||
+++ gnu-efi-3.0/Makefile
|
||||
@@ -42,6 +42,8 @@ include $(SRCDIR)/Make.defaults
|
||||
|
||||
SUBDIRS = lib gnuefi inc apps
|
||||
|
||||
+gnuefi: lib
|
||||
+
|
||||
all: check_gcc $(SUBDIRS)
|
||||
|
||||
$(SUBDIRS):
|
||||
33
meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb
Normal file
33
meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb
Normal file
@@ -0,0 +1,33 @@
|
||||
SUMMARY = "Libraries for producing EFI binaries"
|
||||
HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/"
|
||||
SECTION = "devel"
|
||||
LICENSE = "GPLv2+"
|
||||
LIC_FILES_CHKSUM = "file://debian/copyright;md5=5fb358a180f484b285b0d99acdc29666"
|
||||
|
||||
SRC_URI = "http://downloads.sourceforge.net/gnu-efi/gnu-efi_3.0u.orig.tar.gz \
|
||||
file://parallel-make.patch \
|
||||
file://parallel-make-archives.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "d15d3c700e79a1e2938544d73edc572d"
|
||||
SRC_URI[sha256sum] = "3c0d450d5829204ca05dcb3b2aae772e52c379b7c7e09146759c6315606f934e"
|
||||
|
||||
COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
|
||||
|
||||
S = "${WORKDIR}/gnu-efi-3.0"
|
||||
|
||||
def gnu_efi_arch(d):
|
||||
import re
|
||||
tarch = d.getVar("TARGET_ARCH", True)
|
||||
if re.match("i[3456789]86", tarch):
|
||||
return "ia32"
|
||||
return tarch
|
||||
|
||||
EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \
|
||||
'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}'\
|
||||
"
|
||||
|
||||
do_install() {
|
||||
oe_runmake install INSTALLROOT="${D}"
|
||||
}
|
||||
|
||||
FILES_${PN} += "${libdir}/*.lds"
|
||||
Reference in New Issue
Block a user