mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-05-22 01:22:36 +00:00
efivar: Upgrade to 0.31
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
parent
af7c6e5754
commit
90e08ddc2b
@ -1,44 +0,0 @@
|
||||
From 29a2dea16113b5a8e51de46437c6a9f7426c5867 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Mon, 6 Feb 2017 14:28:19 -0500
|
||||
Subject: [PATCH 1/2] Remove some extra "const" that gcc complains about.
|
||||
|
||||
One of these days I'll get these right.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
src/include/efivar/efiboot-loadopt.h | 4 ++--
|
||||
src/loadopt.c | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/include/efivar/efiboot-loadopt.h b/src/include/efivar/efiboot-loadopt.h
|
||||
index 07db5c4..efc29c6 100644
|
||||
--- a/src/include/efivar/efiboot-loadopt.h
|
||||
+++ b/src/include/efivar/efiboot-loadopt.h
|
||||
@@ -32,8 +32,8 @@ extern ssize_t efi_loadopt_create(uint8_t *buf, ssize_t size,
|
||||
|
||||
extern efidp efi_loadopt_path(efi_load_option *opt, ssize_t limit)
|
||||
__attribute__((__nonnull__ (1)));
|
||||
-extern const unsigned char const * efi_loadopt_desc(efi_load_option *opt,
|
||||
- ssize_t limit)
|
||||
+extern const unsigned char * efi_loadopt_desc(efi_load_option *opt,
|
||||
+ ssize_t limit)
|
||||
__attribute__((__visibility__ ("default")))
|
||||
__attribute__((__nonnull__ (1)));
|
||||
extern uint32_t efi_loadopt_attrs(efi_load_option *opt)
|
||||
diff --git a/src/loadopt.c b/src/loadopt.c
|
||||
index 64e333f..ec50722 100644
|
||||
--- a/src/loadopt.c
|
||||
+++ b/src/loadopt.c
|
||||
@@ -336,7 +336,7 @@ teardown(void)
|
||||
|
||||
__attribute__((__nonnull__ (1)))
|
||||
__attribute__((__visibility__ ("default")))
|
||||
-const unsigned char const *
|
||||
+const unsigned char *
|
||||
efi_loadopt_desc(efi_load_option *opt, ssize_t limit)
|
||||
{
|
||||
if (last_desc) {
|
||||
--
|
||||
2.12.2
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
From 98b33d4193998687aa3a78c097f7bd4c393e0c85 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 15 Jul 2017 00:29:42 -0700
|
||||
Subject: [PATCH] makeguids: Do not use __bswap_constant_{16|32} macros
|
||||
|
||||
not available on musl
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
src/makeguids.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/makeguids.c b/src/makeguids.c
|
||||
index da2f5f7..daf821a 100644
|
||||
--- a/src/makeguids.c
|
||||
+++ b/src/makeguids.c
|
||||
@@ -155,13 +155,13 @@ main(int argc, char *argv[])
|
||||
#if BYTE_ORDER == BIG_ENDIAN\n\
|
||||
#define cpu_to_be32(n) (n)\n\
|
||||
#define cpu_to_be16(n) (n)\n\
|
||||
-#define cpu_to_le32(n) (__bswap_constant_32(n))\n\
|
||||
-#define cpu_to_le16(n) (__bswap_constant_16(n))\n\
|
||||
+#define cpu_to_le32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
|
||||
+#define cpu_to_le16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
|
||||
#else\n\
|
||||
#define cpu_to_le32(n) (n)\n\
|
||||
#define cpu_to_le16(n) (n)\n\
|
||||
-#define cpu_to_be32(n) (__bswap_constant_32(n))\n\
|
||||
-#define cpu_to_be16(n) (__bswap_constant_16(n))\n\
|
||||
+#define cpu_to_be32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
|
||||
+#define cpu_to_be16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
|
||||
#endif\n\
|
||||
""");
|
||||
|
||||
--
|
||||
2.13.3
|
||||
|
||||
@ -1,66 +0,0 @@
|
||||
From 31e655d2b5f66e772d9714422b7332bbaa60d2e6 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Jones <pjones@redhat.com>
|
||||
Date: Mon, 6 Feb 2017 14:41:58 -0500
|
||||
Subject: [PATCH 2/2] New gcc version, new way symbol versioning breaks.
|
||||
|
||||
Apparently I get to redo this every time there's a compiler release.
|
||||
Yaaaaaay.
|
||||
|
||||
Anyway, the current method is to define the two compat things from the
|
||||
land before time as @libefivar.so.0 symbols and list them there in the
|
||||
link map. Then we have the real one defined with another name, and set
|
||||
as efi_set_variable@@LIBEFIVAR_0.24. Then to make there actually be a
|
||||
efi_set_variable symbol to link against, we create it as a weak alias.
|
||||
|
||||
This is all completely absurd.
|
||||
|
||||
Signed-off-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
src/lib.c | 17 ++++++++++++-----
|
||||
1 file changed, 12 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/lib.c b/src/lib.c
|
||||
index 6a9b392..afa7d94 100644
|
||||
--- a/src/lib.c
|
||||
+++ b/src/lib.c
|
||||
@@ -49,7 +49,7 @@ _efi_set_variable(efi_guid_t guid, const char *name, uint8_t *data,
|
||||
{
|
||||
return ops->set_variable(guid, name, data, data_size, attributes, 0600);
|
||||
}
|
||||
-__asm__(".symver _efi_set_variable,_efi_set_variable@");
|
||||
+__asm__(".symver _efi_set_variable,_efi_set_variable@libefivar.so.0");
|
||||
|
||||
int
|
||||
__attribute__((__nonnull__ (2, 3)))
|
||||
@@ -59,17 +59,24 @@ _efi_set_variable_variadic(efi_guid_t guid, const char *name, uint8_t *data,
|
||||
{
|
||||
return ops->set_variable(guid, name, data, data_size, attributes, 0600);
|
||||
}
|
||||
-__asm__(".symver _efi_set_variable_variadic,efi_set_variable@");
|
||||
+__asm__(".symver _efi_set_variable_variadic,efi_set_variable@libefivar.so.0");
|
||||
|
||||
int
|
||||
__attribute__((__nonnull__ (2, 3)))
|
||||
__attribute__((__visibility__ ("default")))
|
||||
-efi_set_variable(efi_guid_t guid, const char *name, uint8_t *data,
|
||||
- size_t data_size, uint32_t attributes, mode_t mode)
|
||||
+_efi_set_variable_mode(efi_guid_t guid, const char *name, uint8_t *data,
|
||||
+ size_t data_size, uint32_t attributes, mode_t mode)
|
||||
{
|
||||
return ops->set_variable(guid, name, data, data_size, attributes, mode);
|
||||
}
|
||||
-__asm__(".symver efi_set_variable,efi_set_variable@@LIBEFIVAR_0.24");
|
||||
+__asm__(".symver _efi_set_variable_mode,efi_set_variable@@LIBEFIVAR_0.24");
|
||||
+
|
||||
+int
|
||||
+__attribute__((__nonnull__ (2, 3)))
|
||||
+__attribute__((__visibility__ ("default")))
|
||||
+efi_set_variable(efi_guid_t guid, const char *name, uint8_t *data,
|
||||
+ size_t data_size, uint32_t attributes, mode_t mode)
|
||||
+ __attribute((weak, alias ("_efi_set_variable_mode")));
|
||||
|
||||
int
|
||||
__attribute__((__nonnull__ (2, 3)))
|
||||
--
|
||||
2.12.2
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
From 126e0d3c1ad74cf5b0abe9e98ec444bcc3c83159 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen.kooi@linaro.org>
|
||||
Date: Fri, 4 Mar 2016 14:53:55 +0100
|
||||
Subject: [PATCH 2/2] disable static build
|
||||
|
||||
Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
|
||||
|
||||
Upstream-Status: Inappropriate [meta-oe specific]
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
|
||||
---
|
||||
src/Makefile | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 1829d22..c7a0ca3 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -8,9 +8,9 @@ include $(TOPDIR)/Make.defaults
|
||||
|
||||
LIBTARGETS=libefivar.so libefiboot.so
|
||||
STATICLIBTARGETS=libefivar.a libefiboot.a
|
||||
-BINTARGETS=efivar efivar-static
|
||||
+BINTARGETS=efivar
|
||||
PCTARGETS=efivar.pc efiboot.pc
|
||||
-TARGETS=$(LIBTARGETS) $(STATICLIBTARGETS) $(BINTARGETS) $(PCTARGETS)
|
||||
+TARGETS=$(LIBTARGETS) $(BINTARGETS) $(PCTARGETS)
|
||||
|
||||
LIBEFIBOOT_SOURCES = crc32.c creator.c disk.c gpt.c linux.c loadopt.c
|
||||
LIBEFIBOOT_OBJECTS = $(patsubst %.c,%.o,$(LIBEFIBOOT_SOURCES))
|
||||
--
|
||||
2.4.3
|
||||
|
||||
@ -23,16 +23,13 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
gcc.specs | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gcc.specs b/gcc.specs
|
||||
index 24fabc2..5b0fdef 100644
|
||||
--- a/gcc.specs
|
||||
+++ b/gcc.specs
|
||||
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 -PIC} %{static:%<pie}
|
||||
++ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro -fPIC} %{static:%<pie}
|
||||
--
|
||||
2.8.1
|
||||
|
||||
-+ %{!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}
|
||||
|
||||
@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
gcc.specs | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gcc.specs b/gcc.specs
|
||||
index 0d4bbda..3802ca6 100644
|
||||
--- a/gcc.specs
|
||||
+++ b/gcc.specs
|
||||
Index: git/gcc.specs
|
||||
===================================================================
|
||||
--- git.orig/gcc.specs
|
||||
+++ git/gcc.specs
|
||||
@@ -2,13 +2,13 @@
|
||||
+ -D_GNU_SOURCE
|
||||
|
||||
@ -35,11 +35,8 @@ index 0d4bbda..3802ca6 100644
|
||||
+ %(efivar_cpp_options)
|
||||
|
||||
*cc1_options:
|
||||
-+ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -flto -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
|
||||
-+ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
|
||||
++ %(efivar_cpp_options) -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
|
||||
|
||||
*self_spec:
|
||||
+ %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now}
|
||||
--
|
||||
2.8.1
|
||||
|
||||
|
||||
17
meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
Normal file
17
meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
Normal file
@ -0,0 +1,17 @@
|
||||
Taken from void linux
|
||||
|
||||
Index: git/src/linux.c
|
||||
===================================================================
|
||||
--- git.orig/src/linux.c
|
||||
+++ git/src/linux.c
|
||||
@@ -40,6 +40,10 @@
|
||||
#include <efivar.h>
|
||||
#include <efiboot.h>
|
||||
|
||||
+#if !defined(__GLIBC__)
|
||||
+#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
|
||||
+#endif
|
||||
+
|
||||
#include "dp.h"
|
||||
#include "linux.h"
|
||||
#include "util.h"
|
||||
@ -12,13 +12,12 @@ inherit pkgconfig
|
||||
|
||||
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
|
||||
|
||||
SRCREV = "963cb2e5adc145fe00717f94e382f2973f80e753"
|
||||
SRCREV = "11324799c68193116e1dd5f94b416591bd324f90"
|
||||
SRC_URI = "git://github.com/rhinstaller/efivar.git \
|
||||
file://0002-disable-static-build.patch \
|
||||
file://allow-multi-definitions-for-native.patch \
|
||||
file://0001-Remove-some-extra-const-that-gcc-complains-about.patch \
|
||||
file://0002-New-gcc-version-new-way-symbol-versioning-breaks.patch \
|
||||
"
|
||||
file://0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch \
|
||||
file://musl-strndupa.patch \
|
||||
"
|
||||
SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch \
|
||||
file://0003-efivar-fix-for-cross-compile.patch \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', '', d)} \
|
||||
Loading…
x
Reference in New Issue
Block a user