Message ID | 20170818164949.24616-1-raj.khem@gmail.com |
---|---|
State | Accepted |
Commit | 90e08ddc2b1e3b7af0c871fb012aab8a89eee826 |
Headers | show |
Fails here in qemux86 build with: DEBUG: Executing shell function do_compile NOTE: make -j 24 AR=gcc-ar make[1]: Entering directory `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' make -f TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/Make.deps deps SOURCES="crc32.c creator.c disk.c gpt.c linux.c loadopt.c dp.c dp-acpi.c dp-hw.c dp-media.c dp-message.c efivarfs.c error.c export.c guid.c guids.S guid-symbols.c lib.c vars.c makeguids.c guid.c include/efivar/efiboot-creator.h include/efivar/efiboot.h include/efivar/efiboot-loadopt.h include/efivar/efivar-dp.h include/efivar/efivar-guids.h include/efivar/efivar.h include/efivar/efivar-guids.h guid-symbols.c efivar.c" make[2]: Entering directory `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' make[2]: Nothing to be done for `deps'. make[2]: Leaving directory `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o dp.o dp.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o guid-symbols.o guid-symbols.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o lib.o lib.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o vars.o vars.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o crc32.o crc32.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o creator.o creator.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o disk.o disk.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o gpt.o gpt.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o linux.o linux.c gcc -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -O2 -pipe -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs -fPIC -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include -c -o loadopt.o loadopt.c dp.c: In function ‘efidp_duplicate_extra’: dp.c:78:2: warning: implicit declaration of function ‘_Generic’ [-Wimplicit-function-declaration] if (add(sz, extra, &plus)) { ^ In file included from dp.c:27:0: util.h:109:10: error: expected expression before ‘int’ int *: int_add(a,b,c), \ ^ dp.c:78:6: note: in expansion of macro ‘add’ if (add(sz, extra, &plus)) { ^ dp.c:65:58: warning: unused parameter ‘extra’ [-Wunused-parameter] efidp_duplicate_extra(const_efidp dp, efidp *out, size_t extra) ^ In file included from dp.c:27:0: dp.c: In function ‘efidp_append_path’: util.h:109:10: error: expected expression before ‘int’ int *: int_add(a,b,c), \ ^ dp.c:164:6: note: in expansion of macro ‘add’ if (add(lsz, rsz, &newsz)) { ^ dp.c: In function ‘efidp_append_node’: util.h:109:10: error: expected expression before ‘int’ int *: int_add(a,b,c), \ ^ dp.c:221:7: note: in expansion of macro ‘add’ if (add(rsz, sizeof(end_entire), &newsz)) { ^ util.h:109:10: error: expected expression before ‘int’ int *: int_add(a,b,c), \ ^ dp.c:257:6: note: in expansion of macro ‘add’ if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { ^ util.h:109:10: error: expected expression before ‘int’ int *: int_add(a,b,c), \ ^ dp.c:257:31: note: in expansion of macro ‘add’ if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { ^ make[1]: *** [dp.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' make: *** [all] Error 2 ERROR: oe_runmake failed WARNING: exit code 1 from a shell command. ERROR: Function failed: do_compile (log file is located at TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/temp/log.do_compile.7593) On Fri, Aug 18, 2017 at 6:49 PM, Khem Raj <raj.khem@gmail.com> wrote: > Signed-off-by: Khem Raj <raj.khem@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 ----------- > .../0004-fix-unknow-option-for-gold-linker.patch | 15 ++--- > .../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 ++- > 8 files changed, 69 insertions(+), 165 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@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 > - > 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@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 > + > 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@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 > - > 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@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 > - > diff --git a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch > b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow- > option-for-gold-linker.patch > index 5d50c1906..96d0c6b3b 100644 > --- a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow- > option-for-gold-linker.patch > +++ b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow- > option-for-gold-linker.patch > @@ -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} > 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@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.14.1 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel >
On Wed, Aug 23, 2017 at 4:38 AM, Martin Jansa <martin.jansa@gmail.com> wrote: > Fails here in qemux86 build with: > > DEBUG: Executing shell function do_compile > NOTE: make -j 24 AR=gcc-ar > make[1]: Entering directory > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > make -f > TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/Make.deps deps > SOURCES="crc32.c creator.c disk.c gpt.c linux.c loadopt.c dp.c dp-acpi.c > dp-hw.c dp-media.c dp-message.c efivarfs.c error.c export.c guid.c guids.S > guid-symbols.c lib.c vars.c makeguids.c guid.c > include/efivar/efiboot-creator.h include/efivar/efiboot.h > include/efivar/efiboot-loadopt.h include/efivar/efivar-dp.h > include/efivar/efivar-guids.h include/efivar/efivar.h > include/efivar/efivar-guids.h guid-symbols.c efivar.c" > make[2]: Entering directory > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > make[2]: Nothing to be done for `deps'. > make[2]: Leaving directory > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o dp.o dp.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o guid-symbols.o guid-symbols.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o lib.o lib.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o vars.o vars.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o crc32.o crc32.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o creator.o creator.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o disk.o disk.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o gpt.o gpt.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o linux.o linux.c > gcc > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -O2 -pipe > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/include/efivar/ > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/gcc.specs > -fPIC > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/recipe-sysroot-native/usr/include > -c -o loadopt.o loadopt.c > dp.c: In function ‘efidp_duplicate_extra’: > dp.c:78:2: warning: implicit declaration of function ‘_Generic’ > [-Wimplicit-function-declaration] > if (add(sz, extra, &plus)) { > ^ > In file included from dp.c:27:0: > util.h:109:10: error: expected expression before ‘int’ > int *: int_add(a,b,c), \ > ^ I have gcc 7.1 on my build host and I dont see efivar-native failing what should I do to reproduce it > dp.c:78:6: note: in expansion of macro ‘add’ > if (add(sz, extra, &plus)) { > ^ > dp.c:65:58: warning: unused parameter ‘extra’ [-Wunused-parameter] > efidp_duplicate_extra(const_efidp dp, efidp *out, size_t extra) > ^ > In file included from dp.c:27:0: > dp.c: In function ‘efidp_append_path’: > util.h:109:10: error: expected expression before ‘int’ > int *: int_add(a,b,c), \ > ^ > dp.c:164:6: note: in expansion of macro ‘add’ > if (add(lsz, rsz, &newsz)) { > ^ > dp.c: In function ‘efidp_append_node’: > util.h:109:10: error: expected expression before ‘int’ > int *: int_add(a,b,c), \ > ^ > dp.c:221:7: note: in expansion of macro ‘add’ > if (add(rsz, sizeof(end_entire), &newsz)) { > ^ > util.h:109:10: error: expected expression before ‘int’ > int *: int_add(a,b,c), \ > ^ > dp.c:257:6: note: in expansion of macro ‘add’ > if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { > ^ > util.h:109:10: error: expected expression before ‘int’ > int *: int_add(a,b,c), \ > ^ > dp.c:257:31: note: in expansion of macro ‘add’ > if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { > ^ > make[1]: *** [dp.o] Error 1 > make[1]: *** Waiting for unfinished jobs.... > make[1]: Leaving directory > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > make: *** [all] Error 2 > ERROR: oe_runmake failed > WARNING: exit code 1 from a shell command. > ERROR: Function failed: do_compile (log file is located at > TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/temp/log.do_compile.7593) > > > > On Fri, Aug 18, 2017 at 6:49 PM, Khem Raj <raj.khem@gmail.com> wrote: >> >> Signed-off-by: Khem Raj <raj.khem@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 ----------- >> .../0004-fix-unknow-option-for-gold-linker.patch | 15 ++--- >> .../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 ++- >> 8 files changed, 69 insertions(+), 165 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@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 >> - >> 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@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 >> + >> 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@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 >> - >> 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@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 >> - >> diff --git >> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch >> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch >> index 5d50c1906..96d0c6b3b 100644 >> --- >> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch >> +++ >> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch >> @@ -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} >> 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@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.14.1 >> >> -- >> _______________________________________________ >> Openembedded-devel mailing list >> Openembedded-devel@lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > >
This was on Ubuntu 14.04 with gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) On Wed, Aug 23, 2017 at 5:13 PM, Khem Raj <raj.khem@gmail.com> wrote: > On Wed, Aug 23, 2017 at 4:38 AM, Martin Jansa <martin.jansa@gmail.com> > wrote: > > Fails here in qemux86 build with: > > > > DEBUG: Executing shell function do_compile > > NOTE: make -j 24 AR=gcc-ar > > make[1]: Entering directory > > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > > make -f > > TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/Make.deps > deps > > SOURCES="crc32.c creator.c disk.c gpt.c linux.c loadopt.c dp.c dp-acpi.c > > dp-hw.c dp-media.c dp-message.c efivarfs.c error.c export.c guid.c > guids.S > > guid-symbols.c lib.c vars.c makeguids.c guid.c > > include/efivar/efiboot-creator.h include/efivar/efiboot.h > > include/efivar/efiboot-loadopt.h include/efivar/efivar-dp.h > > include/efivar/efivar-guids.h include/efivar/efivar.h > > include/efivar/efivar-guids.h guid-symbols.c efivar.c" > > make[2]: Entering directory > > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > > make[2]: Nothing to be done for `deps'. > > make[2]: Leaving directory > > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o dp.o dp.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o guid-symbols.o guid-symbols.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o lib.o lib.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o vars.o vars.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o crc32.o crc32.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o creator.o creator.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o disk.o disk.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o gpt.o gpt.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o linux.o linux.c > > gcc > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -O2 -pipe > > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > git/src/include/efivar/ > > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/git/gcc.specs > > -fPIC > > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31- > r0/recipe-sysroot-native/usr/include > > -c -o loadopt.o loadopt.c > > dp.c: In function ‘efidp_duplicate_extra’: > > dp.c:78:2: warning: implicit declaration of function ‘_Generic’ > > [-Wimplicit-function-declaration] > > if (add(sz, extra, &plus)) { > > ^ > > In file included from dp.c:27:0: > > util.h:109:10: error: expected expression before ‘int’ > > int *: int_add(a,b,c), \ > > ^ > > I have gcc 7.1 on my build host and I dont see efivar-native failing > what should I do to reproduce it > > > dp.c:78:6: note: in expansion of macro ‘add’ > > if (add(sz, extra, &plus)) { > > ^ > > dp.c:65:58: warning: unused parameter ‘extra’ [-Wunused-parameter] > > efidp_duplicate_extra(const_efidp dp, efidp *out, size_t extra) > > ^ > > In file included from dp.c:27:0: > > dp.c: In function ‘efidp_append_path’: > > util.h:109:10: error: expected expression before ‘int’ > > int *: int_add(a,b,c), \ > > ^ > > dp.c:164:6: note: in expansion of macro ‘add’ > > if (add(lsz, rsz, &newsz)) { > > ^ > > dp.c: In function ‘efidp_append_node’: > > util.h:109:10: error: expected expression before ‘int’ > > int *: int_add(a,b,c), \ > > ^ > > dp.c:221:7: note: in expansion of macro ‘add’ > > if (add(rsz, sizeof(end_entire), &newsz)) { > > ^ > > util.h:109:10: error: expected expression before ‘int’ > > int *: int_add(a,b,c), \ > > ^ > > dp.c:257:6: note: in expansion of macro ‘add’ > > if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { > > ^ > > util.h:109:10: error: expected expression before ‘int’ > > int *: int_add(a,b,c), \ > > ^ > > dp.c:257:31: note: in expansion of macro ‘add’ > > if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { > > ^ > > make[1]: *** [dp.o] Error 1 > > make[1]: *** Waiting for unfinished jobs.... > > make[1]: Leaving directory > > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' > > make: *** [all] Error 2 > > ERROR: oe_runmake failed > > WARNING: exit code 1 from a shell command. > > ERROR: Function failed: do_compile (log file is located at > > TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ > temp/log.do_compile.7593) > > > > > > > > On Fri, Aug 18, 2017 at 6:49 PM, Khem Raj <raj.khem@gmail.com> wrote: > >> > >> Signed-off-by: Khem Raj <raj.khem@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 ----------- > >> .../0004-fix-unknow-option-for-gold-linker.patch | 15 ++--- > >> .../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 ++- > >> 8 files changed, 69 insertions(+), 165 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@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 > >> - > >> 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@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 > >> + > >> 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@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 > >> - > >> 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@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 > >> - > >> diff --git > >> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow- > option-for-gold-linker.patch > >> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow- > option-for-gold-linker.patch > >> index 5d50c1906..96d0c6b3b 100644 > >> --- > >> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow- > option-for-gold-linker.patch > >> +++ > >> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow- > option-for-gold-linker.patch > >> @@ -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} > >> 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@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.14.1 > >> > >> -- > >> _______________________________________________ > >> Openembedded-devel mailing list > >> Openembedded-devel@lists.openembedded.org > >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel > > > > >
https://forums.gentoo.org/viewtopic-t-1059836-start-0.html says that gcc 4.9 is needed to build this. Are we ready to abandon Ubuntu-14.04 support where gcc 4.8 is still used by default? This is first recipe where I've noticed the failures caused by Ubuntu 14.04. On Wed, Aug 23, 2017 at 5:29 PM, Martin Jansa <martin.jansa@gmail.com> wrote: > This was on Ubuntu 14.04 with gcc version 4.8.4 (Ubuntu > 4.8.4-2ubuntu1~14.04.3) > > On Wed, Aug 23, 2017 at 5:13 PM, Khem Raj <raj.khem@gmail.com> wrote: > >> On Wed, Aug 23, 2017 at 4:38 AM, Martin Jansa <martin.jansa@gmail.com> >> wrote: >> > Fails here in qemux86 build with: >> > >> > DEBUG: Executing shell function do_compile >> > NOTE: make -j 24 AR=gcc-ar >> > make[1]: Entering directory >> > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >> > make -f >> > TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/Make.deps >> deps >> > SOURCES="crc32.c creator.c disk.c gpt.c linux.c loadopt.c dp.c dp-acpi.c >> > dp-hw.c dp-media.c dp-message.c efivarfs.c error.c export.c guid.c >> guids.S >> > guid-symbols.c lib.c vars.c makeguids.c guid.c >> > include/efivar/efiboot-creator.h include/efivar/efiboot.h >> > include/efivar/efiboot-loadopt.h include/efivar/efivar-dp.h >> > include/efivar/efivar-guids.h include/efivar/efivar.h >> > include/efivar/efivar-guids.h guid-symbols.c efivar.c" >> > make[2]: Entering directory >> > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >> > make[2]: Nothing to be done for `deps'. >> > make[2]: Leaving directory >> > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o dp.o dp.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o guid-symbols.o guid-symbols.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o lib.o lib.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o vars.o vars.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o crc32.o crc32.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o creator.o creator.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o disk.o disk.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o gpt.o gpt.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o linux.o linux.c >> > gcc >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -O2 -pipe >> > -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >> src/include/efivar/ >> > -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >> git/gcc.specs >> > -fPIC >> > -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >> /recipe-sysroot-native/usr/include >> > -c -o loadopt.o loadopt.c >> > dp.c: In function ‘efidp_duplicate_extra’: >> > dp.c:78:2: warning: implicit declaration of function ‘_Generic’ >> > [-Wimplicit-function-declaration] >> > if (add(sz, extra, &plus)) { >> > ^ >> > In file included from dp.c:27:0: >> > util.h:109:10: error: expected expression before ‘int’ >> > int *: int_add(a,b,c), \ >> > ^ >> >> I have gcc 7.1 on my build host and I dont see efivar-native failing >> what should I do to reproduce it >> >> > dp.c:78:6: note: in expansion of macro ‘add’ >> > if (add(sz, extra, &plus)) { >> > ^ >> > dp.c:65:58: warning: unused parameter ‘extra’ [-Wunused-parameter] >> > efidp_duplicate_extra(const_efidp dp, efidp *out, size_t extra) >> > ^ >> > In file included from dp.c:27:0: >> > dp.c: In function ‘efidp_append_path’: >> > util.h:109:10: error: expected expression before ‘int’ >> > int *: int_add(a,b,c), \ >> > ^ >> > dp.c:164:6: note: in expansion of macro ‘add’ >> > if (add(lsz, rsz, &newsz)) { >> > ^ >> > dp.c: In function ‘efidp_append_node’: >> > util.h:109:10: error: expected expression before ‘int’ >> > int *: int_add(a,b,c), \ >> > ^ >> > dp.c:221:7: note: in expansion of macro ‘add’ >> > if (add(rsz, sizeof(end_entire), &newsz)) { >> > ^ >> > util.h:109:10: error: expected expression before ‘int’ >> > int *: int_add(a,b,c), \ >> > ^ >> > dp.c:257:6: note: in expansion of macro ‘add’ >> > if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { >> > ^ >> > util.h:109:10: error: expected expression before ‘int’ >> > int *: int_add(a,b,c), \ >> > ^ >> > dp.c:257:31: note: in expansion of macro ‘add’ >> > if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { >> > ^ >> > make[1]: *** [dp.o] Error 1 >> > make[1]: *** Waiting for unfinished jobs.... >> > make[1]: Leaving directory >> > `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >> > make: *** [all] Error 2 >> > ERROR: oe_runmake failed >> > WARNING: exit code 1 from a shell command. >> > ERROR: Function failed: do_compile (log file is located at >> > TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/temp/ >> log.do_compile.7593) >> > >> > >> > >> > On Fri, Aug 18, 2017 at 6:49 PM, Khem Raj <raj.khem@gmail.com> wrote: >> >> >> >> Signed-off-by: Khem Raj <raj.khem@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 ----------- >> >> .../0004-fix-unknow-option-for-gold-linker.patch | 15 ++--- >> >> .../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 ++- >> >> 8 files changed, 69 insertions(+), 165 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@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 >> >> - >> >> 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@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 >> >> + >> >> diff --git >> >> a/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-versio >> n-new-way-symbol-versioning-breaks.patch >> >> b/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-versio >> n-new-way-symbol-versioning-breaks.patch >> >> deleted file mode 100644 >> >> index 737b78b01..000000000 >> >> --- >> >> a/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-versio >> n-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@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 >> >> - >> >> 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@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 >> >> - >> >> diff --git >> >> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >> ion-for-gold-linker.patch >> >> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >> ion-for-gold-linker.patch >> >> index 5d50c1906..96d0c6b3b 100644 >> >> --- >> >> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >> ion-for-gold-linker.patch >> >> +++ >> >> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >> ion-for-gold-linker.patch >> >> @@ -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} >> >> 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@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/efi >> var/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_F >> EATURES', >> >> 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', >> '', d)} >> >> \ >> >> -- >> >> 2.14.1 >> >> >> >> -- >> >> _______________________________________________ >> >> Openembedded-devel mailing list >> >> Openembedded-devel@lists.openembedded.org >> >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >> > >> > >> > >
This fails to build on centos7 for the same reason. gcc --version gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9) cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) On 8/30/2017 7:43 AM, Martin Jansa wrote: > https://forums.gentoo.org/viewtopic-t-1059836-start-0.html says that gcc > 4.9 is needed to build this. > > Are we ready to abandon Ubuntu-14.04 support where gcc 4.8 is still used by > default? This is first recipe where I've noticed the failures caused by > Ubuntu 14.04. > > On Wed, Aug 23, 2017 at 5:29 PM, Martin Jansa <martin.jansa@gmail.com> > wrote: > >> This was on Ubuntu 14.04 with gcc version 4.8.4 (Ubuntu >> 4.8.4-2ubuntu1~14.04.3) >> >> On Wed, Aug 23, 2017 at 5:13 PM, Khem Raj <raj.khem@gmail.com> wrote: >> >>> On Wed, Aug 23, 2017 at 4:38 AM, Martin Jansa <martin.jansa@gmail.com> >>> wrote: >>>> Fails here in qemux86 build with: >>>> >>>> DEBUG: Executing shell function do_compile >>>> NOTE: make -j 24 AR=gcc-ar >>>> make[1]: Entering directory >>>> `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >>>> make -f >>>> TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src/Make.deps >>> deps >>>> SOURCES="crc32.c creator.c disk.c gpt.c linux.c loadopt.c dp.c dp-acpi.c >>>> dp-hw.c dp-media.c dp-message.c efivarfs.c error.c export.c guid.c >>> guids.S >>>> guid-symbols.c lib.c vars.c makeguids.c guid.c >>>> include/efivar/efiboot-creator.h include/efivar/efiboot.h >>>> include/efivar/efiboot-loadopt.h include/efivar/efivar-dp.h >>>> include/efivar/efivar-guids.h include/efivar/efivar.h >>>> include/efivar/efivar-guids.h guid-symbols.c efivar.c" >>>> make[2]: Entering directory >>>> `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >>>> make[2]: Nothing to be done for `deps'. >>>> make[2]: Leaving directory >>>> `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o dp.o dp.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o guid-symbols.o guid-symbols.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o lib.o lib.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o vars.o vars.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o crc32.o crc32.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o creator.o creator.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o disk.o disk.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o gpt.o gpt.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o linux.o linux.c >>>> gcc >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -O2 -pipe >>>> -ITOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/ >>> src/include/efivar/ >>>> -specs=TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/ >>> git/gcc.specs >>>> -fPIC >>>> -isystemTOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0 >>> /recipe-sysroot-native/usr/include >>>> -c -o loadopt.o loadopt.c >>>> dp.c: In function ‘efidp_duplicate_extra’: >>>> dp.c:78:2: warning: implicit declaration of function ‘_Generic’ >>>> [-Wimplicit-function-declaration] >>>> if (add(sz, extra, &plus)) { >>>> ^ >>>> In file included from dp.c:27:0: >>>> util.h:109:10: error: expected expression before ‘int’ >>>> int *: int_add(a,b,c), \ >>>> ^ >>> I have gcc 7.1 on my build host and I dont see efivar-native failing >>> what should I do to reproduce it >>> >>>> dp.c:78:6: note: in expansion of macro ‘add’ >>>> if (add(sz, extra, &plus)) { >>>> ^ >>>> dp.c:65:58: warning: unused parameter ‘extra’ [-Wunused-parameter] >>>> efidp_duplicate_extra(const_efidp dp, efidp *out, size_t extra) >>>> ^ >>>> In file included from dp.c:27:0: >>>> dp.c: In function ‘efidp_append_path’: >>>> util.h:109:10: error: expected expression before ‘int’ >>>> int *: int_add(a,b,c), \ >>>> ^ >>>> dp.c:164:6: note: in expansion of macro ‘add’ >>>> if (add(lsz, rsz, &newsz)) { >>>> ^ >>>> dp.c: In function ‘efidp_append_node’: >>>> util.h:109:10: error: expected expression before ‘int’ >>>> int *: int_add(a,b,c), \ >>>> ^ >>>> dp.c:221:7: note: in expansion of macro ‘add’ >>>> if (add(rsz, sizeof(end_entire), &newsz)) { >>>> ^ >>>> util.h:109:10: error: expected expression before ‘int’ >>>> int *: int_add(a,b,c), \ >>>> ^ >>>> dp.c:257:6: note: in expansion of macro ‘add’ >>>> if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { >>>> ^ >>>> util.h:109:10: error: expected expression before ‘int’ >>>> int *: int_add(a,b,c), \ >>>> ^ >>>> dp.c:257:31: note: in expansion of macro ‘add’ >>>> if (add(lsz, rsz, &newsz) || add(newsz, sizeof(end_entire), &newsz)) { >>>> ^ >>>> make[1]: *** [dp.o] Error 1 >>>> make[1]: *** Waiting for unfinished jobs.... >>>> make[1]: Leaving directory >>>> `TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/git/src' >>>> make: *** [all] Error 2 >>>> ERROR: oe_runmake failed >>>> WARNING: exit code 1 from a shell command. >>>> ERROR: Function failed: do_compile (log file is located at >>>> TOPDIR/BUILD/work/x86_64-linux/efivar-native/0.31-r0/temp/ >>> log.do_compile.7593) >>>> >>>> >>>> On Fri, Aug 18, 2017 at 6:49 PM, Khem Raj <raj.khem@gmail.com> wrote: >>>>> Signed-off-by: Khem Raj <raj.khem@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 ----------- >>>>> .../0004-fix-unknow-option-for-gold-linker.patch | 15 ++--- >>>>> .../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 ++- >>>>> 8 files changed, 69 insertions(+), 165 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@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 >>>>> - >>>>> 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@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 >>>>> + >>>>> diff --git >>>>> a/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-versio >>> n-new-way-symbol-versioning-breaks.patch >>>>> b/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-versio >>> n-new-way-symbol-versioning-breaks.patch >>>>> deleted file mode 100644 >>>>> index 737b78b01..000000000 >>>>> --- >>>>> a/meta-oe/recipes-extended/efivar/efivar/0002-New-gcc-versio >>> n-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@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 >>>>> - >>>>> 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@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 >>>>> - >>>>> diff --git >>>>> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >>> ion-for-gold-linker.patch >>>>> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >>> ion-for-gold-linker.patch >>>>> index 5d50c1906..96d0c6b3b 100644 >>>>> --- >>>>> a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >>> ion-for-gold-linker.patch >>>>> +++ >>>>> b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-opt >>> ion-for-gold-linker.patch >>>>> @@ -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} >>>>> 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@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/efi >>> var/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_F >>> EATURES', >>>>> 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', >>> '', d)} >>>>> \ >>>>> -- >>>>> 2.14.1 >>>>> >>>>> -- >>>>> _______________________________________________ >>>>> Openembedded-devel mailing list >>>>> Openembedded-devel@lists.openembedded.org >>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel >>>> >>
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@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 - 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@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 + 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@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 - 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@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 - diff --git a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch index 5d50c1906..96d0c6b3b 100644 --- a/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch +++ b/meta-oe/recipes-extended/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch @@ -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} 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@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)} \
Signed-off-by: Khem Raj <raj.khem@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 ----------- .../0004-fix-unknow-option-for-gold-linker.patch | 15 ++--- .../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 ++- 8 files changed, 69 insertions(+), 165 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%) -- 2.14.1 -- _______________________________________________ Openembedded-devel mailing list Openembedded-devel@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-devel