From fcb414abb62223e66dba413d0ca86eab3ea5bbc3 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Sun, 21 Jun 2020 13:54:47 +0000
Subject: [PATCH] src-gen-lock-obj.sh: add a file

This is erroneously missing from the tarball; it will show
up in the next release tarball, as upstream has fixed the
packaging in master.

Upstream-Status: Inappropriate
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 src/gen-lock-obj.sh | 112 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 112 insertions(+)
 create mode 100755 src/gen-lock-obj.sh

diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh
new file mode 100755
index 0000000..13858cf
--- /dev/null
+++ b/src/gen-lock-obj.sh
@@ -0,0 +1,112 @@
+#! /bin/sh
+#
+# gen-lock-obj.sh - Build tool to construct the lock object.
+#
+# Copyright (C) 2020 g10 Code GmbH
+#
+# This file is part of libgpg-error.
+#
+# libgpg-error is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public License
+# as published by the Free Software Foundation; either version 2.1 of
+# the License, or (at your option) any later version.
+#
+# libgpg-error is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+
+#
+# Following variables should be defined to invoke this script
+#
+#   CC
+#   OBJDUMP
+#   AWK
+#   ac_ext
+#   ac_object
+#   host
+#   LOCK_ABI_VERSION
+#
+# An example:
+#
+# LOCK_ABI_VERSION=1 host=x86_64-pc-linux-gnu host_alias=x86_64-linux-gnu \
+#     CC=$host_alias-gcc OBJDUMP=$host_alias-objdump ac_ext=c ac_objext=o \
+#     AWK=gawk ./gen-lock-obj.sh
+#
+
+AWK_VERSION_OUTPUT=$($AWK 'BEGIN { print PROCINFO["version"] }')
+if test -n "$AWK_VERSION_OUTPUT"; then
+    # It's GNU awk, which supports PROCINFO.
+    AWK_OPTION=--non-decimal-data
+fi
+
+cat <<'EOF' >conftest.$ac_ext
+#include <pthread.h>
+pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;
+EOF
+
+if $CC -c conftest.$ac_ext; then :
+  ac_mtx_size=$($OBJDUMP -j .bss -t conftest.$ac_objext \
+         | $AWK $AWK_OPTION '
+/mtx$/ { mtx_size = int("0x" $5) }
+END { print mtx_size }')
+else
+    echo "Can't determine mutex size"
+    exit 1
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+cat <<EOF
+## lock-obj-pub.$host.h
+## File created by gen-lock-obj.sh - DO NOT EDIT
+## To be included by mkheader into gpg-error.h
+
+typedef struct
+{
+  long _vers;
+  union {
+    volatile char _priv[$ac_mtx_size];
+    long _x_align;
+    long *_xp_align;
+  } u;
+} gpgrt_lock_t;
+
+EOF
+
+# FIXME: Support different alignment conditions of:
+#
+#     USE_16BYTE_ALIGNMENT
+#     USE_DOUBLE_FOR_ALIGNMENT
+#     USE_LONG_DOUBLE_FOR_ALIGNMENT
+#
+
+echo -n "#define GPGRT_LOCK_INITIALIZER {$LOCK_ABI_VERSION,{{"
+
+i=0
+while test "$i" -lt $ac_mtx_size; do
+    if test "$i" -ne 0 -a "$(( $i % 8 ))" -eq 0; then
+        echo ' \'
+        echo -n "                                    "
+    fi
+    echo -n '0'
+    if test "$i" -lt $(($ac_mtx_size - 1)); then
+        echo -n ','
+    fi
+    i=$(( i + 1 ))
+done
+
+cat <<'EOF'
+}}}
+##
+## Local Variables:
+## mode: c
+## buffer-read-only: t
+## End:
+##
+EOF
+
+exit 0
