On 2018/03/22 08:16, Markus Hennecke wrote: > Commit 791177d is required to build the latest release on arm, I stripped > down the patch leaving out the comments. The patch has to be removed in > the next version update anyway:
I'd prefer to use the full upstream patch (and copy the commit headers into the comment) as below, it's easier to verify that nothing else changed in the meantime if it's the same diff, this one is OK sthen@. Index: Makefile =================================================================== RCS file: /cvs/ports/security/libgpg-error/Makefile,v retrieving revision 1.40 diff -u -p -r1.40 Makefile --- Makefile 17 Mar 2018 08:49:24 -0000 1.40 +++ Makefile 22 Mar 2018 09:48:30 -0000 @@ -5,6 +5,7 @@ COMMENT= error codes for GnuPG related DISTNAME= libgpg-error-1.28 CATEGORIES= security devel EXTRACT_SUFX= .tar.bz2 +REVISION= 0 SHARED_LIBS += gpg-error 3.15 # 23.0 Index: patches/patch-src_logging_c =================================================================== RCS file: patches/patch-src_logging_c diff -N patches/patch-src_logging_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_logging_c 22 Mar 2018 09:48:30 -0000 @@ -0,0 +1,45 @@ +$OpenBSD$ + +From 791177de023574223eddf7288eb7c5a0721ac623 Mon Sep 17 00:00:00 2001 +From: Werner Koch <w...@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. + +Index: src/logging.c +--- src/logging.c.orig ++++ 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); ++ } + } + +