[oe] [meta-oe][PATCH 10/17] efivar: Upgrade to 0.31

Khem Raj raj.khem at gmail.com
Sat Jul 22 15:04:50 UTC 2017


On Sat, Jul 22, 2017 at 2:13 AM, Martin Jansa <martin.jansa at gmail.com> wrote:
> For target version it fails to apply gold linker patch:
>
> Applying patch 0004-fix-unknow-option-for-gold-linker.patch
> patching file gcc.specs
> Hunk #1 FAILED at 14.
> 1 out of 1 hunk FAILED -- rejects in file gcc.specs
> Patch 0004-fix-unknow-option-for-gold-linker.patch does not apply (enforce
> with -f)
>
> and native version fails in do_compile with:
> In file included from dp.c:27:0:
> util.h:109:10: error: expected expression before ‘int’
>           int *: int_add(a,b,c),   \
>           ^
>

Interesting, I will take a look again


> On Tue, Jul 18, 2017 at 5:10 AM, Khem Raj <raj.khem at gmail.com> wrote:
>>
>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
>> ---
>>  ...some-extra-const-that-gcc-complains-about.patch | 44 ---------------
>>  ...Do-not-use-__bswap_constant_-16-32-macros.patch | 37 ++++++++++++
>>  ...-version-new-way-symbol-versioning-breaks.patch | 66
>> ----------------------
>>  .../efivar/efivar/0002-disable-static-build.patch  | 33 -----------
>>  .../fix-compile-failure-with-host-gcc-4.6.patch    | 13 ++---
>>  .../efivar/efivar/musl-strndupa.patch              | 17 ++++++
>>  .../efivar/{efivar_0.24.bb => efivar_0.31.bb}      |  9 ++-
>>  7 files changed, 63 insertions(+), 156 deletions(-)
>>  delete mode 100644
>> meta-oe/recipes-extended/efivar/efivar/0001-Remove-some-extra-const-that-gcc-complains-about.patch
>>  create mode 100644
>> meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
>>  delete mode 100644
>> meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-version-new-way-symbol-versioning-breaks.patch
>>  delete mode 100644
>> meta-oe/recipes-extended/efivar/efivar/0002-disable-static-build.patch
>>  create mode 100644
>> meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
>>  rename meta-oe/recipes-extended/efivar/{efivar_0.24.bb => efivar_0.31.bb}
>> (83%)
>>
>> diff --git
>> a/meta-oe/recipes-extended/efivar/efivar/0001-Remove-some-extra-const-that-gcc-complains-about.patch
>> b/meta-oe/recipes-extended/efivar/efivar/0001-Remove-some-extra-const-that-gcc-complains-about.patch
>> deleted file mode 100644
>> index 4ae8cb90f..000000000
>> ---
>> a/meta-oe/recipes-extended/efivar/efivar/0001-Remove-some-extra-const-that-gcc-complains-about.patch
>> +++ /dev/null
>> @@ -1,44 +0,0 @@
>> -From 29a2dea16113b5a8e51de46437c6a9f7426c5867 Mon Sep 17 00:00:00 2001
>> -From: Peter Jones <pjones at 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 at 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
>> -
>> diff --git
>> a/meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
>> b/meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
>> new file mode 100644
>> index 000000000..73a772186
>> --- /dev/null
>> +++
>> b/meta-oe/recipes-extended/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
>> @@ -0,0 +1,37 @@
>> +From 98b33d4193998687aa3a78c097f7bd4c393e0c85 Mon Sep 17 00:00:00 2001
>> +From: Khem Raj <raj.khem at 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 at 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
>> +
>> diff --git
>> a/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-version-new-way-symbol-versioning-breaks.patch
>> b/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-version-new-way-symbol-versioning-breaks.patch
>> deleted file mode 100644
>> index 737b78b01..000000000
>> ---
>> a/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-version-new-way-symbol-versioning-breaks.patch
>> +++ /dev/null
>> @@ -1,66 +0,0 @@
>> -From 31e655d2b5f66e772d9714422b7332bbaa60d2e6 Mon Sep 17 00:00:00 2001
>> -From: Peter Jones <pjones at 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 at 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 at 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 at 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
>> -
>> diff --git
>> a/meta-oe/recipes-extended/efivar/efivar/0002-disable-static-build.patch
>> b/meta-oe/recipes-extended/efivar/efivar/0002-disable-static-build.patch
>> deleted file mode 100644
>> index 951b15921..000000000
>> ---
>> a/meta-oe/recipes-extended/efivar/efivar/0002-disable-static-build.patch
>> +++ /dev/null
>> @@ -1,33 +0,0 @@
>> -From 126e0d3c1ad74cf5b0abe9e98ec444bcc3c83159 Mon Sep 17 00:00:00 2001
>> -From: Koen Kooi <koen.kooi at 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 at linaro.org>
>> -
>> -Upstream-Status: Inappropriate [meta-oe specific]
>> -Signed-off-by: Hongxu Jia <hongxu.jia at 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
>> -
>> diff --git
>> a/meta-oe/recipes-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
>> b/meta-oe/recipes-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
>> index 1c68a2934..e3fa2e1c1 100644
>> ---
>> a/meta-oe/recipes-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
>> +++
>> b/meta-oe/recipes-extended/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
>> @@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia at 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
>> -
>> diff --git a/meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
>> b/meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
>> new file mode 100644
>> index 000000000..fc8f8c8b2
>> --- /dev/null
>> +++ b/meta-oe/recipes-extended/efivar/efivar/musl-strndupa.patch
>> @@ -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"
>> diff --git a/meta-oe/recipes-extended/efivar/efivar_0.24.bb
>> b/meta-oe/recipes-extended/efivar/efivar_0.31.bb
>> similarity index 83%
>> rename from meta-oe/recipes-extended/efivar/efivar_0.24.bb
>> rename to meta-oe/recipes-extended/efivar/efivar_0.31.bb
>> index 877ca9045..10dde896e 100644
>> --- a/meta-oe/recipes-extended/efivar/efivar_0.24.bb
>> +++ b/meta-oe/recipes-extended/efivar/efivar_0.31.bb
>> @@ -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)}
>> \
>> --
>> 2.13.3
>>
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
>



More information about the Openembedded-devel mailing list