Bug#891663: [pkg-gnupg-maint] Bug#891663: [PATCH] libgpg-error: Add support for the riscv64 architecture

2018-02-27 Thread NIIBE Yutaka
Hello,

Thanks for your report.

Karsten Merker  wrote:
> AIUI, libgpg-error requires a per-architecture header file
> "src/syscfg/lock-obj-pub..h", which upstream doesn't
> provide for riscv64.

As upstream, the change is pushed by the commit: 596c0d7
-- 



Bug#891663: [PATCH] libgpg-error: Add support for the riscv64 architecture

2018-02-27 Thread Karsten Merker
Source: libgpg-error
Version: 1.27-6
X-Debbugs-CC: debian-ri...@lists.debian.org
Tags: patch
Severity: wishlist
User: debian-ri...@lists.debian.org
Usertags: riscv64

Hello,

we are in the process of bootstrapping a Debian port for the
riscv64 architecture (https://wiki.debian.org/RISC-V).  The
libgpg-error package is part of the build-dependency chain for
the essential package set, so we need to build it for riscv64 to
be able to complete the bootstrap process.

AIUI, libgpg-error requires a per-architecture header file
"src/syscfg/lock-obj-pub..h", which upstream doesn't
provide for riscv64.  Based on the information in the header
files for the other architectures, I have created such a file for
riscv64 by cross-building and executing (in qemu) the
gen-posix-lock-obj helper program:

$ riscv64-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../src -I..   -Wdate-time 
-D_FORTIFY_SOURCE=2  -g -O2 
-fdebug-prefix-map=/usr/src/repositories/libgpg-error=. 
-specs=/usr/share/dpkg/pie-compile.specs -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -Wpointer-arith -Wno-psabi -fvisibility=hidden -c 
-o gen-posix-lock-obj.o ../../src/gen-posix-lock-obj.c
$ /bin/bash ../libtool  --tag=CC   --mode=link riscv64-linux-gnu-gcc  -g -O2 
-fdebug-prefix-map=/usr/src/repositories/libgpg-error=. 
-specs=/usr/share/dpkg/pie-compile.specs -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -Wpointer-arith -Wno-psabi -fvisibility=hidden  
-specs=/usr/share/dpkg/pie-link.specs -Wl,-z,relro -Wl,-z,now -o 
gen-posix-lock-obj gen-posix-lock-obj.o
libtool: link: riscv64-linux-gnu-gcc -g -O2 
-fdebug-prefix-map=/usr/src/repositories/libgpg-error=. 
-specs=/usr/share/dpkg/pie-compile.specs -fstack-protector-strong -Wformat 
-Werror=format-security -Wall -Wpointer-arith -Wno-psabi -fvisibility=hidden 
-specs=/usr/share/dpkg/pie-link.specs -Wl,-z -Wl,relro -Wl,-z -Wl,now -o 
gen-posix-lock-obj gen-posix-lock-obj.o
$ ./gen-posix-lock-obj   # (executed in qemu via binfmt-misc)
## lock-obj-pub.riscv64-unknown-linux-gnu.h
## File created by gen-posix-lock-obj - DO NOT EDIT
## To be included by mkheader into gpg-error.h

typedef struct
{
  long _vers;
  union {
volatile char _priv[40];
long _x_align;
long *_xp_align;
  } u;
} gpgrt_lock_t;

#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0}}}
##
## Local Variables:
## mode: c
## buffer-read-only: t
## End:
##

Attached is the raw header file as well as a patch for the
packaging to carry this header file as a Debian patch.  I would
apprechiate very much if you could upload a new package version
that includes this patch to unstable in the near future as we
depend on it for continuing our bootstrap efforts.

Regards,
Karsten
-- 
Gem. Par. 28 Abs. 4 Bundesdatenschutzgesetz widerspreche ich der Nutzung
sowie der Weitergabe meiner personenbezogenen Daten für Zwecke der
Werbung sowie der Markt- oder Meinungsforschung.
## lock-obj-pub.riscv64-unknown-linux-gnu.h
## File created by gen-posix-lock-obj - DO NOT EDIT
## To be included by mkheader into gpg-error.h

typedef struct
{
  long _vers;
  union {
volatile char _priv[40];
long _x_align;
long *_xp_align;
  } u;
} gpgrt_lock_t;

#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0}}}
##
## Local Variables:
## mode: c
## buffer-read-only: t
## End:
##
>From cec778b68abe56de49f838af5754348494778abe Mon Sep 17 00:00:00 2001
From: Karsten Merker 
Date: Tue, 27 Feb 2018 19:43:09 +
Subject: [PATCH] add riscv64-unknown-linux-gnu lock-obj definitions

---
 ...bj-pub-file-for-riscv64-unknown-linux-gnu.patch | 30 ++
 debian/patches/series  |  1 +
 2 files changed, 31 insertions(+)
 create mode 100644 debian/patches/0017-syscfg-Add-lock-obj-pub-file-for-riscv64-unknown-linux-gnu.patch

diff --git a/debian/patches/0017-syscfg-Add-lock-obj-pub-file-for-riscv64-unknown-linux-gnu.patch b/debian/patches/0017-syscfg-Add-lock-obj-pub-file-for-riscv64-unknown-linux-gnu.patch
new file mode 100644
index 000..19ec11a
--- /dev/null
+++ b/debian/patches/0017-syscfg-Add-lock-obj-pub-file-for-riscv64-unknown-linux-gnu.patch
@@ -0,0 +1,30 @@
+Index: libgpg-error/src/syscfg/lock-obj-pub.riscv64-unknown-linux-gnu.h
+===
+--- /dev/null
 libgpg-error/src/syscfg/lock-obj-pub.riscv64-unknown-linux-gnu.h
+@@ -0,0 +1,25 @@
++## lock-obj-pub.riscv64-unknown-linux-gnu.h
++## File created by gen-posix-lock-obj - DO NOT EDIT
++## To be included by mkheader into gpg-error.h
++
++typedef str