From 862bb97d65676b26d0582d645ebeb71684090dd4 Mon Sep 17 00:00:00 2001 From: DistroBaker Date: Tue, 27 Oct 2020 14:38:11 +0100 Subject: [PATCH] Merged update from upstream sources This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/efivar.git#636372ec17b3167da215d3995e87fe2d6331ad90 --- ...utput-for-missing-variadic-arguments.patch | 90 +++++++++++++++++++ efivar.spec | 10 ++- 2 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 0001-Fix-abidw-output-for-missing-variadic-arguments.patch diff --git a/0001-Fix-abidw-output-for-missing-variadic-arguments.patch b/0001-Fix-abidw-output-for-missing-variadic-arguments.patch new file mode 100644 index 0000000..45d4769 --- /dev/null +++ b/0001-Fix-abidw-output-for-missing-variadic-arguments.patch @@ -0,0 +1,90 @@ +From e9b282cbd147eac515c53aa500720de3a43366f3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Tue, 27 Oct 2020 13:06:15 +0100 +Subject: [PATCH] Fix abidw output for missing variadic arguments +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +GCC forgets to add the varidic arguments into debugging data if the +compilation unit is built with -flto option. As a result, the prebuilt +XML ABI dumps were missing the last argument at 4 functions (e.g. +efi_error_set()). + +This was unnoticed until Fedora enabled LTO globally and had to +disable LTO in efivar explicitly because efivar uses symbol versioning +with top-level assembler statements which is not compatible with LTO. + +Since then the abicheck failed: + +make[2]: Leaving directory '/builddir/build/BUILD/efivar-37/src' +abidiff \ + --suppr abignore \ + --headers-dir2 /builddir/build/BUILD/efivar-37/src/include/efivar/ \ + libefivar.abixml \ + libefivar.so +Functions changes summary: 0 Removed, 2 Changed (8 filtered out), 0 Added functions +Variables changes summary: 0 Removed, 0 Changed, 0 Added variable +2 functions with some indirect sub-type change: + [C]'function int _efi_set_variable_variadic(efi_guid_t, const char*, uint8_t*, size_t, uint32_t)' at lib.c:44:1 has some indirect sub-type changes: + parameter 6 of type '...' was added + [C]'function int efi_error_set(const char*, const char*, int, int, const char*)' at error.c:86:1 has some indirect sub-type changes: + parameter 6 of type '...' was added +make[1]: *** [/builddir/build/BUILD/efivar-37/src/include/rules.mk:41: libefivar.abicheck] Error 4 +make[1]: Leaving directory '/builddir/build/BUILD/efivar-37/src' + +This patch corrects the pregenerated abixml files that were probably +generated with the faulty GCC. + + + + +Signed-off-by: Petr Písař +--- + src/libefiboot.abixml | 2 ++ + src/libefivar.abixml | 2 ++ + 2 files changed, 4 insertions(+) + +diff --git a/src/libefiboot.abixml b/src/libefiboot.abixml +index 4a0253b..ab75cbb 100644 +--- a/src/libefiboot.abixml ++++ b/src/libefiboot.abixml +@@ -1800,6 +1800,7 @@ + + + ++ + + + +@@ -1809,6 +1810,7 @@ + + + ++ + + + +diff --git a/src/libefivar.abixml b/src/libefivar.abixml +index a719b8b..2dbb838 100644 +--- a/src/libefivar.abixml ++++ b/src/libefivar.abixml +@@ -393,6 +393,7 @@ + + + ++ + + + +@@ -467,6 +468,7 @@ + + + ++ + + + +-- +2.25.4 + diff --git a/efivar.spec b/efivar.spec index 9ff2c81..53ccd28 100644 --- a/efivar.spec +++ b/efivar.spec @@ -1,6 +1,6 @@ Name: efivar Version: 37 -Release: 13%{?dist} +Release: 14%{?dist} Summary: Tools to manage UEFI variables License: LGPL-2.1 URL: https://github.com/rhboot/efivar @@ -19,6 +19,10 @@ Source1: efivar.patches # Source1 patches reflect a git snapshot, this is a separate fix on top # with a gap in between Patch100: 0001-Fix-sys-block-sysfs-parsing-for-eMMC-s.patch +# Fix XML ABI dumps that were generated with a faulty GCC and missed the +# variadic arguments when building without LTO, bug #1863475, +# +Patch101: 0001-Fix-abidw-output-for-missing-variadic-arguments.patch %description efivar provides a simple command line interface to the UEFI variable facility. @@ -83,6 +87,10 @@ make abicheck %{_libdir}/*.so.* %changelog +* Tue Oct 27 2020 Petr Pisar - 37-14 +- Fix XML ABI dumps that were generated with a faulty GCC and missed the + variadic arguments when building without LTO (bug #1863475) + * Thu Aug 06 2020 Jeff Law - Remove explicit LTO bits from flags