diff --git a/fix_aarch64.patch b/fix_aarch64.patch new file mode 100644 index 0000000..f8ed2a8 --- /dev/null +++ b/fix_aarch64.patch @@ -0,0 +1,53 @@ +From 791177de023574223eddf7288eb7c5a0721ac623 Mon Sep 17 00:00:00 2001 +From: Werner Koch +Date: Sun, 18 Mar 2018 17:39:43 +0100 +Subject: [PATCH] core: Fix regression on arm64 due to invalid use of va_list. + +* src/logging.c (_gpgrt_log_printhex): Provide a dummy arg instead of +NULL. +-- + +Fix +Suggested-by: Jakub Wilk + +Signed-off-by: Werner Koch +--- + src/logging.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/src/logging.c b/src/logging.c +index 1a4f620..d01f974 100644 +--- a/src/logging.c ++++ b/src/logging.c +@@ -1090,9 +1090,10 @@ _gpgrt_log_flush (void) + + + /* Print a hexdump of (BUFFER,LENGTH). With FMT passed as NULL print +- * just the raw dump, with FMT being an empty string, print a trailing +- * linefeed, otherwise print an entire debug line with the expanded +- * FMT followed by a possible wrapped hexdump and a final LF. */ ++ * just the raw dump (in this case ARG_PTR is not used), with FMT ++ * being an empty string, print a trailing linefeed, otherwise print ++ * an entire debug line with the expanded FMT followed by a possible ++ * wrapped hexdump and a final LF. */ + void + _gpgrt_logv_printhex (const void *buffer, size_t length, + const char *fmt, va_list arg_ptr) +@@ -1150,7 +1151,16 @@ _gpgrt_log_printhex (const void *buffer, size_t length, + va_end (arg_ptr); + } + else +- _gpgrt_logv_printhex (buffer, length, NULL, NULL); ++ { ++ /* va_list is not necessary a pointer and thus we can't use NULL ++ * because that would conflict with platforms using a straight ++ * struct for it (e.g. arm64). We use a dummy variable instead; ++ * the static is a simple way zero it out so to not get ++ * complains about uninitialized use. */ ++ static va_list dummy_argptr; ++ ++ _gpgrt_logv_printhex (buffer, length, NULL, dummy_argptr); ++ } + } + + diff --git a/libgpg-error.changes b/libgpg-error.changes index 367d0bd..46f369a 100644 --- a/libgpg-error.changes +++ b/libgpg-error.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Mar 22 10:15:51 UTC 2018 - guillaume.gardet@opensuse.org + +- Backport upstream patch to fix AArch64 build: + * fix_aarch64.patch + ------------------------------------------------------------------- Tue Mar 13 14:28:52 UTC 2018 - kbabioch@suse.com diff --git a/libgpg-error.spec b/libgpg-error.spec index 2157679..94e2c69 100644 --- a/libgpg-error.spec +++ b/libgpg-error.spec @@ -20,7 +20,7 @@ Name: libgpg-error Version: 1.28 Release: 0 Summary: Library That Defines Common Error Values for All GnuPG Components -License: GPL-2.0+ and LGPL-2.1+ +License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: Development/Libraries/C and C++ Url: http://www.gnupg.org/ Source: ftp://ftp.gnupg.org/gcrypt/libgpg-error/%{name}-%{version}.tar.bz2 @@ -28,6 +28,8 @@ Source1: ftp://ftp.gnupg.org/gcrypt/libgpg-error/%{name}-%{version}.tar.b # http://www.gnupg.org/signature_key.en.html Source2: %{name}.keyring Source3: baselibs.conf +# FIX-UPSTREAM: https://github.com/gpg/libgpg-error/commit/791177de023574223eddf7288eb7c5a0721ac623 +Patch0: fix_aarch64.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -38,7 +40,7 @@ pinentry, SmartCard Daemon, and possibly more in the future. %package -n libgpg-error0 Summary: Library That Defines Common Error Values for All GnuPG Components # -License: GPL-2.0+ and LGPL-2.1+ +License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: Development/Libraries/C and C++ Provides: libgpg-error = %{version} Obsoletes: libgpg-error < %{version} @@ -51,7 +53,7 @@ pinentry, SmartCard Daemon, and possibly more in the future. %package devel Summary: Development package for libgpg-error # -License: GPL-2.0+ and LGPL-2.1+ and MIT +License: GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT Group: Development/Libraries/C and C++ Requires: glibc-devel Requires: libgpg-error0 = %{version} @@ -63,6 +65,7 @@ Files needed for software development using libgpg-error. %prep %setup -q -n libgpg-error-%{version} +%patch0 -p1 %build %configure \