This was in meta-oe but EFI is sufficiently wide spread now that we need it in core.
Signed-off-by: Ross Burton <[email protected]> --- .../efivar/0001-efivar-fix-for-cross-compile.patch | 32 ++++++++++++++++ .../0004-fix-unknow-option-for-gold-linker.patch | 35 ++++++++++++++++++ .../allow-multi-definitions-for-native.patch | 36 ++++++++++++++++++ meta/recipes-bsp/efivar/efivar_37.bb | 43 ++++++++++++++++++++++ 4 files changed, 146 insertions(+) create mode 100644 meta/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch create mode 100644 meta/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch create mode 100644 meta/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch create mode 100644 meta/recipes-bsp/efivar/efivar_37.bb diff --git a/meta/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch b/meta/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch new file mode 100644 index 00000000000..251e50c902c --- /dev/null +++ b/meta/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch @@ -0,0 +1,32 @@ +From a9115d9e6f0f62d6bb735ce3698858d1f89f8d73 Mon Sep 17 00:00:00 2001 +From: Kai Kang <[email protected]> +Date: Fri, 25 Sep 2015 18:14:31 +0800 +Subject: [PATCH] efivar: fix for cross compile + +It builds and calls elf file makeguids to generate a header file which +doesn't work for cross compile. Fix it. + +Signed-off-by: Kai Kang <[email protected]> + +Upstream-Status: Pending +Signed-off-by: Hongxu Jia <[email protected]> + +--- + src/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index 0c16597..dcc7fc8 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -40,8 +40,8 @@ abicheck : $(patsubst %.so,%.abicheck,$(LIBTARGETS)) + ./guid-symbols.c : include/efivar/efivar-guids.h + ./guids.bin : include/efivar/efivar-guids.h + ./names.bin : include/efivar/efivar-guids.h +-include/efivar/efivar-guids.h : makeguids guids.txt +- ./makeguids guids.txt guids.bin names.bin \ ++include/efivar/efivar-guids.h : guids.txt ++ makeguids guids.txt guids.bin names.bin \ + guid-symbols.c include/efivar/efivar-guids.h + + makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT diff --git a/meta/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch b/meta/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch new file mode 100644 index 00000000000..96d0c6b3b28 --- /dev/null +++ b/meta/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch @@ -0,0 +1,35 @@ +From b3d35e7dd27a755df5acbe050837885914dbb28b Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <[email protected]> +Date: Tue, 10 May 2016 11:34:50 -0400 +Subject: [PATCH] fix unknow option for gold linker + +- Revert the following patch, since oe-core work with gcc 5 +... +commit 3055a3797f16693dfdd855fa68bc57fd900dc408 +Author: Peter Jones <[email protected]> +Date: Mon Feb 15 14:15:40 2016 -0500 + + Make gcc.specs work with gcc 6 / binutils 2.26 + + Apparently binutils 2.26 gets real picky about "ld -PIC" vs "ld -fPIC". + + Signed-off-by: Peter Jones <[email protected]> +... + +- Remove unknown option '--add-needed' + +Signed-off-by: Hongxu Jia <[email protected]> +--- + gcc.specs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: git/gcc.specs +=================================================================== +--- git.orig/gcc.specs ++++ git/gcc.specs +@@ -14,4 +14,4 @@ + + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now} + + *link: +-+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie} +++ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie} diff --git a/meta/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch b/meta/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch new file mode 100644 index 00000000000..043b07a655c --- /dev/null +++ b/meta/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch @@ -0,0 +1,36 @@ +From c10368b397483a2fc7b493c099d8416d902f8cd8 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <[email protected]> +Date: Tue, 31 Jul 2018 14:18:35 +0800 +Subject: [PATCH] allow multi definitions for native + +Upstream-Status: Pending + +It fails to create .so file when build efivar-native: + +| lib.o:(*IND*+0x0): multiple definition of `efi_set_variable' +| lib.o:lib.c:(.text+0xa0): first defined here + +Add link option '-z muldefs' to fix it. + +Signed-off-by: Kai Kang <[email protected]> + +Signed-off-by: Hongxu Jia <[email protected]> +--- + Make.rules | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Make.rules b/Make.rules +index 042585b..257ba45 100644 +--- a/Make.rules ++++ b/Make.rules +@@ -20,6 +20,7 @@ include $(TOPDIR)/Make.version + $(CCLD) $(ccldflags) $(CPPFLAGS) $(SOFLAGS) \ + -Wl,-soname,[email protected] \ + -Wl,--version-script=$(MAP) \ ++ -Wl,-z,muldefs \ + -o $@ $^ $(LDLIBS) + ln -vfs $@ [email protected] + +-- +2.7.4 + diff --git a/meta/recipes-bsp/efivar/efivar_37.bb b/meta/recipes-bsp/efivar/efivar_37.bb new file mode 100644 index 00000000000..4b458dedd50 --- /dev/null +++ b/meta/recipes-bsp/efivar/efivar_37.bb @@ -0,0 +1,43 @@ +SUMMARY = "Tools to manipulate UEFI variables" +DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility" +HOMEPAGE = "https://github.com/rhinstaller/efivar" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393" + +DEPENDS = "popt" +DEPENDS_append_class-target = " efivar-native" + +inherit pkgconfig + +COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" + +SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10" +SRC_URI = "git://github.com/rhinstaller/efivar.git \ + file://allow-multi-definitions-for-native.patch \ + " +SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', '', d)} \ + " + +S = "${WORKDIR}/git" + +do_compile_prepend() { + sed -i -e s:-Werror::g ${S}/gcc.specs +} + +do_compile_class-native() { + oe_runmake -C src makeguids CC_FOR_BUILD="${BUILD_CC}" +} + +do_install() { + oe_runmake install DESTDIR=${D} +} + +do_install_class-native() { + install -D -m 0755 ${B}/src/makeguids ${D}${bindir}/makeguids +} + +BBCLASSEXTEND = "native" + +RRECOMMENDS_${PN}_class-target = "kernel-module-efivarfs" -- 2.11.0 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
