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