diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch | 48 | ||||
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch | 22 | ||||
-rw-r--r-- | meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb | 33 |
3 files changed, 103 insertions, 0 deletions
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch new file mode 100644 index 0000000000..e5b47c197a --- /dev/null +++ b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make-archives.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | Fix parallel make failure for archives | ||
2 | |||
3 | Upstream-Status: Pending | ||
4 | |||
5 | The lib and gnuefi makefiles were using the lib.a() form which compiles | ||
6 | and ar's as a pair instead of compiling all and then ar'ing which can | ||
7 | parallelize better. This was resulting in build failures on larger values | ||
8 | of -j. | ||
9 | |||
10 | See http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_toc.html#TOC105 | ||
11 | for details. | ||
12 | |||
13 | Signed-off-by: Saul Wold <sgw@linux.intel.com> | ||
14 | Signed-off-by: Darren Hart <dvhart@linux.intel.com> | ||
15 | --- | ||
16 | --- | ||
17 | gnuefi/Makefile | 3 ++- | ||
18 | lib/Makefile | 3 ++- | ||
19 | 2 files changed, 4 insertions(+), 2 deletions(-) | ||
20 | |||
21 | Index: gnu-efi-3.0/lib/Makefile | ||
22 | =================================================================== | ||
23 | --- gnu-efi-3.0.orig/lib/Makefile | ||
24 | +++ gnu-efi-3.0/lib/Makefile | ||
25 | @@ -66,7 +66,8 @@ all: libsubdirs libefi.a | ||
26 | libsubdirs: | ||
27 | for sdir in $(SUBDIRS); do mkdir -p $$sdir; done | ||
28 | |||
29 | -libefi.a: $(patsubst %,libefi.a(%),$(OBJS)) | ||
30 | +libefi.a: $(OBJS) | ||
31 | + $(AR) rv $@ $(OBJS) | ||
32 | |||
33 | clean: | ||
34 | rm -f libefi.a *~ $(OBJS) */*.o | ||
35 | Index: gnu-efi-3.0/gnuefi/Makefile | ||
36 | =================================================================== | ||
37 | --- gnu-efi-3.0.orig/gnuefi/Makefile | ||
38 | +++ gnu-efi-3.0/gnuefi/Makefile | ||
39 | @@ -51,7 +51,8 @@ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a | ||
40 | |||
41 | all: $(TARGETS) | ||
42 | |||
43 | -libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS)) | ||
44 | +libgnuefi.a: $(OBJS) | ||
45 | + $(AR) rv $@ $(OBJS) | ||
46 | |||
47 | clean: | ||
48 | rm -f $(TARGETS) *~ *.o $(OBJS) | ||
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch new file mode 100644 index 0000000000..27c94e8a74 --- /dev/null +++ b/meta/recipes-bsp/gnu-efi/gnu-efi/parallel-make.patch | |||
@@ -0,0 +1,22 @@ | |||
1 | Fix parallel make failure | ||
2 | |||
3 | Upstream-Status: Submitted [Maintainer directly] | ||
4 | |||
5 | Add a missing dependency which resulted in a race leading to failure | ||
6 | on larger values of -j. | ||
7 | |||
8 | Signed-off-by: Darren Hart <dvhart@linux.intel.com> | ||
9 | |||
10 | Index: gnu-efi-3.0/Makefile | ||
11 | =================================================================== | ||
12 | --- gnu-efi-3.0.orig/Makefile | ||
13 | +++ gnu-efi-3.0/Makefile | ||
14 | @@ -42,6 +42,8 @@ include $(SRCDIR)/Make.defaults | ||
15 | |||
16 | SUBDIRS = lib gnuefi inc apps | ||
17 | |||
18 | +gnuefi: lib | ||
19 | + | ||
20 | all: check_gcc $(SUBDIRS) | ||
21 | |||
22 | $(SUBDIRS): | ||
diff --git a/meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb new file mode 100644 index 0000000000..0dbdba27ac --- /dev/null +++ b/meta/recipes-bsp/gnu-efi/gnu-efi_3.0u.bb | |||
@@ -0,0 +1,33 @@ | |||
1 | SUMMARY = "Libraries for producing EFI binaries" | ||
2 | HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/" | ||
3 | SECTION = "devel" | ||
4 | LICENSE = "GPLv2+" | ||
5 | LIC_FILES_CHKSUM = "file://debian/copyright;md5=5fb358a180f484b285b0d99acdc29666" | ||
6 | |||
7 | SRC_URI = "http://downloads.sourceforge.net/gnu-efi/gnu-efi_3.0u.orig.tar.gz \ | ||
8 | file://parallel-make.patch \ | ||
9 | file://parallel-make-archives.patch \ | ||
10 | " | ||
11 | SRC_URI[md5sum] = "d15d3c700e79a1e2938544d73edc572d" | ||
12 | SRC_URI[sha256sum] = "3c0d450d5829204ca05dcb3b2aae772e52c379b7c7e09146759c6315606f934e" | ||
13 | |||
14 | COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux" | ||
15 | |||
16 | S = "${WORKDIR}/gnu-efi-3.0" | ||
17 | |||
18 | def gnu_efi_arch(d): | ||
19 | import re | ||
20 | tarch = d.getVar("TARGET_ARCH", True) | ||
21 | if re.match("i[3456789]86", tarch): | ||
22 | return "ia32" | ||
23 | return tarch | ||
24 | |||
25 | EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \ | ||
26 | 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}'\ | ||
27 | " | ||
28 | |||
29 | do_install() { | ||
30 | oe_runmake install INSTALLROOT="${D}" | ||
31 | } | ||
32 | |||
33 | FILES_${PN} += "${libdir}/*.lds" | ||