From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Sun, 30 Jan 2022 16:52:25 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1nECV7-000pIv-Q4 for lore@lore.pengutronix.de; Sun, 30 Jan 2022 16:52:25 +0100 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1nECV7-00019z-3n; Sun, 30 Jan 2022 16:52:25 +0100 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nECSe-0006UR-JA; Sun, 30 Jan 2022 16:49:52 +0100 Received: from [2a0a:edc0:0:1101:1d::39] (helo=dude03.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1nECSe-00DSCJ-IO; Sun, 30 Jan 2022 16:49:51 +0100 Received: from mol by dude03.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1nECSd-0002VQ-3K; Sun, 30 Jan 2022 16:49:51 +0100 From: Michael Olbrich To: ptxdist@pengutronix.de Date: Sun, 30 Jan 2022 16:49:51 +0100 Message-Id: <20220130154951.9589-1-m.olbrich@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220129181133.2626194-1-christian.melki@t2data.com> References: <20220129181133.2626194-1-christian.melki@t2data.com> MIME-Version: 1.0 Subject: Re: [ptxdist] [APPLIED] efivar: Version bump 37 -> 38. X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Christian Melki Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false Thanks, applied as 7cde7b1c4d85ef85293fbc665b46874ec498b288. Michael [sent from post-receive hook] On Sun, 30 Jan 2022 16:49:50 +0100, Christian Melki wrote: > * Contains approx 2 years worth of fixes, including a lot > of compile error fixes. So drop old patchset. > * Add Wno-error to the efivar make env. > * Add new patchset. Fix cross-compilation where > one target was used for multiple archs which failed and > drop documentation building. Was dependant on non-provided > binary (mandoc). > > Signed-off-by: Christian Melki > Message-Id: <20220129181133.2626194-1-christian.melki@t2data.com> > Signed-off-by: Michael Olbrich > > diff --git a/patches/efivar-37/0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch b/patches/efivar-37/0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch > deleted file mode 100644 > index 89e913a74304..000000000000 > --- a/patches/efivar-37/0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch > +++ /dev/null > @@ -1,55 +0,0 @@ > -From: Peter Jones > -Date: Mon, 7 Jan 2019 10:30:59 -0500 > -Subject: [PATCH] dp.h: make format_guid() handle misaligned guid pointers > - safely. > - > -GCC 9 adds -Werror=address-of-packed-member, which causes us to see the > -build error reported at > - https://bugzilla.opensuse.org/show_bug.cgi?id=1120862 . > - > -That bug report shows us the following: > - > -In file included from dp.c:26: > -dp.h: In function 'format_vendor_helper': > -dp.h:120:37: error: taking address of packed member of 'struct ' may result in an unaligned pointer value [-Werror=address-of-packed-member] > - 120 | format_guid(buf, size, off, label, &dp->hw_vendor.vendor_guid); > - | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > -dp.h:74:25: note: in definition of macro 'format_guid' > - 74 | _rc = efi_guid_to_str(guid, &_guidstr); \ > - | ^~~~ > -cc1: all warnings being treated as errors > - > -This patch makes format_guid() use a local variable as a bounce buffer > -in the case that the guid we're passed is aligned as chaotic neutral. > - > -Note that this only fixes this instance and there may be others that bz > -didn't show because it exited too soon, and I don't have a gcc 9 build > -in front of me right now. > - > -Signed-off-by: Peter Jones > ---- > - src/dp.h | 11 +++++++++-- > - 1 file changed, 9 insertions(+), 2 deletions(-) > - > -diff --git a/src/dp.h b/src/dp.h > -index aa4e3902992d..20cb608d05f7 100644 > ---- a/src/dp.h > -+++ b/src/dp.h > -@@ -70,8 +70,15 @@ > - #define format_guid(buf, size, off, dp_type, guid) ({ \ > - int _rc; \ > - char *_guidstr = NULL; \ > -- \ > -- _rc = efi_guid_to_str(guid, &_guidstr); \ > -+ efi_guid_t _guid; \ > -+ const efi_guid_t * const _guid_p = \ > -+ likely(__alignof__(guid) == sizeof(guid)) \ > -+ ? guid \ > -+ : &_guid; \ > -+ \ > -+ if (unlikely(__alignof__(guid) == sizeof(guid))) \ > -+ memmove(&_guid, guid, sizeof(_guid)); \ > -+ _rc = efi_guid_to_str(_guid_p, &_guidstr); \ > - if (_rc < 0) { \ > - efi_error("could not build %s GUID DP string", \ > - dp_type); \ > diff --git a/patches/efivar-37/0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch b/patches/efivar-37/0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch > deleted file mode 100644 > index 7653bd80a2f7..000000000000 > --- a/patches/efivar-37/0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch > +++ /dev/null > @@ -1,167 +0,0 @@ > -From: Peter Jones > -Date: Thu, 21 Feb 2019 15:20:12 -0500 > -Subject: [PATCH] Fix all the places -Werror=address-of-packed-member catches. > - > -This gets rid of all the places GCC 9's -Werror=address-of-packed-member > -flags as problematic. > - > -Fixes github issue #123 > - > -Signed-off-by: Peter Jones > ---- > - src/dp-message.c | 6 ++++-- > - src/dp.h | 12 ++++-------- > - src/guid.c | 2 +- > - src/include/efivar/efivar.h | 2 +- > - src/ucs2.h | 27 +++++++++++++++++++-------- > - 5 files changed, 29 insertions(+), 20 deletions(-) > - > -diff --git a/src/dp-message.c b/src/dp-message.c > -index 3724e5f57bdb..9f964663de86 100644 > ---- a/src/dp-message.c > -+++ b/src/dp-message.c > -@@ -620,11 +620,13 @@ _format_message_dn(char *buf, size_t size, const_efidp dp) > - ) / sizeof(efi_ip_addr_t); > - format(buf, size, off, "Dns", "Dns("); > - for (int i=0; i < end; i++) { > -- const efi_ip_addr_t *addr = &dp->dns.addrs[i]; > -+ efi_ip_addr_t addr; > -+ > -+ memcpy(&addr, &dp->dns.addrs[i], sizeof(addr)); > - if (i != 0) > - format(buf, size, off, "Dns", ","); > - format_ip_addr(buf, size, off, "Dns", > -- dp->dns.is_ipv6, addr); > -+ dp->dns.is_ipv6, &addr); > - } > - format(buf, size, off, "Dns", ")"); > - break; > -diff --git a/src/dp.h b/src/dp.h > -index 20cb608d05f7..1f921d524aaf 100644 > ---- a/src/dp.h > -+++ b/src/dp.h > -@@ -71,13 +71,9 @@ > - int _rc; \ > - char *_guidstr = NULL; \ > - efi_guid_t _guid; \ > -- const efi_guid_t * const _guid_p = \ > -- likely(__alignof__(guid) == sizeof(guid)) \ > -- ? guid \ > -- : &_guid; \ > -- \ > -- if (unlikely(__alignof__(guid) == sizeof(guid))) \ > -- memmove(&_guid, guid, sizeof(_guid)); \ > -+ const efi_guid_t * const _guid_p = &_guid; \ > -+ \ > -+ memmove(&_guid, guid, sizeof(_guid)); \ > - _rc = efi_guid_to_str(_guid_p, &_guidstr); \ > - if (_rc < 0) { \ > - efi_error("could not build %s GUID DP string", \ > -@@ -86,7 +82,7 @@ > - _guidstr = onstack(_guidstr, \ > - strlen(_guidstr)+1); \ > - _rc = format(buf, size, off, dp_type, "%s", \ > -- _guidstr); \ > -+ _guidstr); \ > - } \ > - _rc; \ > - }) > -diff --git a/src/guid.c b/src/guid.c > -index 306c9ff8287c..3156b3b7c60a 100644 > ---- a/src/guid.c > -+++ b/src/guid.c > -@@ -31,7 +31,7 @@ > - extern const efi_guid_t efi_guid_zero; > - > - int NONNULL(1, 2) PUBLIC > --efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b) > -+efi_guid_cmp(const void * const a, const void * const b) > - { > - return memcmp(a, b, sizeof (efi_guid_t)); > - } > -diff --git a/src/include/efivar/efivar.h b/src/include/efivar/efivar.h > -index 316891ccae9c..ad6449d9d938 100644 > ---- a/src/include/efivar/efivar.h > -+++ b/src/include/efivar/efivar.h > -@@ -128,7 +128,7 @@ extern int efi_symbol_to_guid(const char *symbol, efi_guid_t *guid) > - > - extern int efi_guid_is_zero(const efi_guid_t *guid); > - extern int efi_guid_is_empty(const efi_guid_t *guid); > --extern int efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b); > -+extern int efi_guid_cmp(const void * const a, const void * const b); > - > - /* import / export functions */ > - typedef struct efi_variable efi_variable_t; > -diff --git a/src/ucs2.h b/src/ucs2.h > -index dbb59004b7c0..edd8367b4bcc 100644 > ---- a/src/ucs2.h > -+++ b/src/ucs2.h > -@@ -23,16 +23,21 @@ > - (((val) & ((mask) << (shift))) >> (shift)) > - > - static inline size_t UNUSED > --ucs2len(const uint16_t * const s, ssize_t limit) > -+ucs2len(const void *vs, ssize_t limit) > - { > - ssize_t i; > -- for (i = 0; i < (limit >= 0 ? limit : i+1) && s[i] != (uint16_t)0; i++) > -+ const uint16_t *s = vs; > -+ const uint8_t *s8 = vs; > -+ > -+ for (i = 0; > -+ i < (limit >= 0 ? limit : i+1) && s8[0] != 0 && s8[1] != 0; > -+ i++, s8 += 2, s++) > - ; > - return i; > - } > - > - static inline size_t UNUSED > --ucs2size(const uint16_t * const s, ssize_t limit) > -+ucs2size(const void *s, ssize_t limit) > - { > - size_t rc = ucs2len(s, limit); > - rc *= sizeof (uint16_t); > -@@ -69,10 +74,11 @@ utf8size(uint8_t *s, ssize_t limit) > - } > - > - static inline unsigned char * UNUSED > --ucs2_to_utf8(const uint16_t * const chars, ssize_t limit) > -+ucs2_to_utf8(const void * const voidchars, ssize_t limit) > - { > - ssize_t i, j; > - unsigned char *ret; > -+ const uint16_t * const chars = voidchars; > - > - if (limit < 0) > - limit = ucs2len(chars, -1); > -@@ -124,10 +130,12 @@ ucs2_to_utf8(const uint16_t * const chars, ssize_t limit) > - } > - > - static inline ssize_t UNUSED NONNULL(4) > --utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8) > -+utf8_to_ucs2(void *ucs2void, ssize_t size, int terminate, uint8_t *utf8) > - { > - ssize_t req; > - ssize_t i, j; > -+ uint16_t *ucs2 = ucs2void; > -+ uint16_t val16; > - > - if (!ucs2 && size > 0) { > - errno = EINVAL; > -@@ -162,10 +170,13 @@ utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8) > - val = utf8[i] & 0x7f; > - i += 1; > - } > -- ucs2[j] = val; > -+ val16 = val; > -+ ucs2[j] = val16; > -+ } > -+ if (terminate) { > -+ val16 = 0; > -+ ucs2[j++] = val16; > - } > -- if (terminate) > -- ucs2[j++] = (uint16_t)0; > - return j; > - }; > - > diff --git a/patches/efivar-37/series b/patches/efivar-37/series > deleted file mode 100644 > index e6f14fec2749..000000000000 > --- a/patches/efivar-37/series > +++ /dev/null > @@ -1,5 +0,0 @@ > -# generated by git-ptx-patches > -#tag:base --start-number 1 > -0001-dp.h-make-format_guid-handle-misaligned-guid-pointer.patch > -0002-Fix-all-the-places-Werror-address-of-packed-member-c.patch > -# cbb8f240dc2a442323107d34454fa178 - git-ptx-patches magic > diff --git a/patches/efivar-38/0001-src-Makefile-build-util.c-separately-for-makeguids.patch b/patches/efivar-38/0001-src-Makefile-build-util.c-separately-for-makeguids.patch > new file mode 100644 > index 000000000000..12db66bfa0ae > --- /dev/null > +++ b/patches/efivar-38/0001-src-Makefile-build-util.c-separately-for-makeguids.patch > @@ -0,0 +1,34 @@ > +From: Alexander Kanavin > +Date: Tue, 18 Jan 2022 11:53:41 +0100 > +Subject: [PATCH] src/Makefile: build util.c separately for makeguids > + > +util.c needs to be built twice when cross-compiling: > +for the build machine to be able to link with > +makeguids which then runs during the same build, > +and then for the actual target. > + > +Upstream-Status: Submitted [https://github.com/rhboot/efivar/pull/203] > +Signed-off-by: Alexander Kanavin > +--- > + src/Makefile | 5 ++++- > + 1 file changed, 4 insertions(+), 1 deletion(-) > + > +diff --git a/src/Makefile b/src/Makefile > +index 0e423c44601a..b10051ba0adf 100644 > +--- a/src/Makefile > ++++ b/src/Makefile > +@@ -28,10 +28,13 @@ EFIVAR_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFIVAR_SOURCES))) > + EFISECDB_SOURCES = efisecdb.c guid-symbols.c secdb-dump.c util.c > + EFISECDB_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFISECDB_SOURCES))) > + GENERATED_SOURCES = include/efivar/efivar-guids.h guid-symbols.c > +-MAKEGUIDS_SOURCES = makeguids.c util.c > ++MAKEGUIDS_SOURCES = makeguids.c util-makeguids.c > + MAKEGUIDS_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(MAKEGUIDS_SOURCES))) > + MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES) guids.lds > + > ++util-makeguids.c : > ++ cp util.c util-makeguids.c > ++ > + ALL_SOURCES=$(LIBEFISEC_SOURCES) $(LIBEFIBOOT_SOURCES) $(LIBEFIVAR_SOURCES) \ > + $(MAKEGUIDS_SOURCES) $(GENERATED_SOURCES) $(EFIVAR_SOURCES) \ > + $(sort $(wildcard include/efivar/*.h)) > diff --git a/patches/efivar-38/0002-docs-Remove-docs-building.patch b/patches/efivar-38/0002-docs-Remove-docs-building.patch > new file mode 100644 > index 000000000000..ef34cf96c630 > --- /dev/null > +++ b/patches/efivar-38/0002-docs-Remove-docs-building.patch > @@ -0,0 +1,25 @@ > +From: Christian Melki > +Date: Fri, 28 Jan 2022 18:42:13 +0100 > +Subject: [PATCH] docs: Remove docs building. > + > +efivar uses mandoc which ptxdist does not provide (yet). > +Just skip the entire documentation generation and installation. > + > +Signed-off-by: Christian Melki > +--- > + Makefile | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/Makefile b/Makefile > +index c896fc38c210..bf081a66970d 100644 > +--- a/Makefile > ++++ b/Makefile > +@@ -7,7 +7,7 @@ include $(TOPDIR)/src/include/defaults.mk > + include $(TOPDIR)/src/include/coverity.mk > + include $(TOPDIR)/src/include/scan-build.mk > + > +-SUBDIRS := src docs > ++SUBDIRS := src > + > + all : | efivar.spec src/include/version.mk prep > + all clean install prep : > diff --git a/patches/efivar-38/series b/patches/efivar-38/series > new file mode 100644 > index 000000000000..6d03bf2521f2 > --- /dev/null > +++ b/patches/efivar-38/series > @@ -0,0 +1,5 @@ > +# generated by git-ptx-patches > +#tag:base --start-number 1 > +0001-src-Makefile-build-util.c-separately-for-makeguids.patch > +0002-docs-Remove-docs-building.patch > +# 6d7bd314e7046e2c5c771e319b825e34 - git-ptx-patches magic > diff --git a/rules/efivar.make b/rules/efivar.make > index db0ed001f487..95a759f94798 100644 > --- a/rules/efivar.make > +++ b/rules/efivar.make > @@ -14,8 +14,8 @@ PACKAGES-$(PTXCONF_EFIVAR) += efivar > # > # Paths and names > # > -EFIVAR_VERSION := 37 > -EFIVAR_MD5 := 9f067275c5f7aafdd75bfb364280ac9c > +EFIVAR_VERSION := 38 > +EFIVAR_MD5 := 243fdbc48440212695cb9c6e6fd0f44f > EFIVAR := efivar-$(EFIVAR_VERSION) > EFIVAR_SUFFIX := tar.bz2 > EFIVAR_URL := https://github.com/rhboot/efivar/releases/download/$(EFIVAR_VERSION)/$(EFIVAR).$(EFIVAR_SUFFIX) > @@ -28,7 +28,11 @@ EFIVAR_LICENSE := LGPL-2.1-only > # ---------------------------------------------------------------------------- > > EFIVAR_CONF_TOOL := NO > -EFIVAR_MAKE_ENV := $(CROSS_ENV) PTXDIST_ICECC=$(PTXDIST_ICERUN) > +EFIVAR_MAKE_ENV := \ > + $(CROSS_ENV) \ > + ERRORS="-Wno-error" \ > + PTXDIST_ICECC=$(PTXDIST_ICERUN) > + > EFIVAR_INSTALL_OPT := libdir="/usr/$(CROSS_LIB_DIR)/" install > > EFIVAR_CFLAGS := \ _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de