Accepting request 590061 from home:Guillaume_G:branches:Base:System

- Backport upstream patch to fix AArch64 build:
  * fix_aarch64.patch

OBS-URL: https://build.opensuse.org/request/show/590061
OBS-URL: https://build.opensuse.org/package/show/Base:System/libgpg-error?expand=0&rev=61
This commit is contained in:
Tomáš Chvátal 2018-03-22 11:08:48 +00:00 committed by Git OBS Bridge
parent 94023b829b
commit c0cfa2abbe
3 changed files with 65 additions and 3 deletions

53
fix_aarch64.patch Normal file
View File

@ -0,0 +1,53 @@
From 791177de023574223eddf7288eb7c5a0721ac623 Mon Sep 17 00:00:00 2001
From: Werner Koch <wk@gnupg.org>
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 <jwilk@jwilk.net>
Signed-off-by: Werner Koch <wk@gnupg.org>
---
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);
+ }
}

View File

@ -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

View File

@ -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 \