mxe/src/libgcrypt-1-fixes.patch

200 lines
7.3 KiB
Diff
Raw Normal View History

This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2016-04-16 08:26:16 +01:00
From: Tony Theodore <tonyt@logyst.com>
Date: Thu, 4 Dec 2014 15:07:43 +1100
Subject: [PATCH 1/3] fix for mingw cross building
2016-04-16 08:26:16 +01:00
Taken from:
https://aur.archlinux.org/packages/mingw-w64-libgcrypt/
diff --git a/acinclude.m4 b/acinclude.m4
index 1111111..2222222 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -102,7 +102,9 @@ AC_DEFUN([GNUPG_SYS_SYMBOL_UNDERSCORE],
[tmp_do_check="no"
case "${host}" in
2016-04-16 08:26:16 +01:00
i?86-mingw32* | i?86-*-mingw32*)
- ac_cv_sys_symbol_underscore=yes
+ if test "x$ac_cv_sys_symbol_underscore" = x ; then
+ ac_cv_sys_symbol_underscore=yes
+ fi
;;
2016-04-16 08:26:16 +01:00
x86_64-*-mingw32*)
ac_cv_sys_symbol_underscore=no
diff --git a/mpi/generic/mpi-asm-defs.h b/mpi/generic/mpi-asm-defs.h
index 1111111..2222222 100644
--- a/mpi/generic/mpi-asm-defs.h
+++ b/mpi/generic/mpi-asm-defs.h
@@ -4,5 +4,9 @@
#if __GNUC__ >= 3 && defined(__x86_64__) && defined(__ILP32__)
#define BYTES_PER_MPI_LIMB 8
#else
+#ifdef _WIN64
+#define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG_LONG)
+#else
#define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG)
#endif
+#endif
diff --git a/mpi/mpi-internal.h b/mpi/mpi-internal.h
index 1111111..2222222 100644
--- a/mpi/mpi-internal.h
+++ b/mpi/mpi-internal.h
@@ -169,6 +169,12 @@ typedef int mpi_size_t; /* (must be a signed type) */
} while (0)
+#ifdef _WIN64
+#define ATTR_ABI __attribute__ ((sysv_abi))
+#else
+#define ATTR_ABI
+#endif
+
/*-- mpiutil.c --*/
#define mpi_alloc_limb_space(n,f) _gcry_mpi_alloc_limb_space((n),(f))
mpi_ptr_t _gcry_mpi_alloc_limb_space( unsigned nlimbs, int sec );
@@ -187,7 +193,7 @@ void _gcry_mpi_lshift_limbs( gcry_mpi_t a, unsigned int count );
mpi_limb_t _gcry_mpih_add_1(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb );
mpi_limb_t _gcry_mpih_add_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_ptr_t s2_ptr, mpi_size_t size);
+ mpi_ptr_t s2_ptr, mpi_size_t size) ATTR_ABI;
mpi_limb_t _gcry_mpih_add(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size,
mpi_ptr_t s2_ptr, mpi_size_t s2_size);
@@ -195,7 +201,7 @@ mpi_limb_t _gcry_mpih_add(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_siz
mpi_limb_t _gcry_mpih_sub_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb );
mpi_limb_t _gcry_mpih_sub_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_ptr_t s2_ptr, mpi_size_t size);
+ mpi_ptr_t s2_ptr, mpi_size_t size) ATTR_ABI;
mpi_limb_t _gcry_mpih_sub(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size,
mpi_ptr_t s2_ptr, mpi_size_t s2_size);
@@ -217,9 +223,9 @@ struct karatsuba_ctx {
void _gcry_mpih_release_karatsuba_ctx( struct karatsuba_ctx *ctx );
mpi_limb_t _gcry_mpih_addmul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_size_t s1_size, mpi_limb_t s2_limb);
+ mpi_size_t s1_size, mpi_limb_t s2_limb) ATTR_ABI;
mpi_limb_t _gcry_mpih_submul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_size_t s1_size, mpi_limb_t s2_limb);
+ mpi_size_t s1_size, mpi_limb_t s2_limb) ATTR_ABI;
void _gcry_mpih_mul_n( mpi_ptr_t prodp, mpi_ptr_t up, mpi_ptr_t vp,
mpi_size_t size);
mpi_limb_t _gcry_mpih_mul( mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t usize,
@@ -236,7 +242,7 @@ void _gcry_mpih_mul_karatsuba_case( mpi_ptr_t prodp,
/*-- mpih-mul_1.c (or xxx/cpu/ *.S) --*/
mpi_limb_t _gcry_mpih_mul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_size_t s1_size, mpi_limb_t s2_limb);
+ mpi_size_t s1_size, mpi_limb_t s2_limb) ATTR_ABI;
/*-- mpih-div.c --*/
mpi_limb_t _gcry_mpih_mod_1(mpi_ptr_t dividend_ptr, mpi_size_t dividend_size,
@@ -250,9 +256,9 @@ mpi_limb_t _gcry_mpih_divmod_1( mpi_ptr_t quot_ptr,
/*-- mpih-shift.c --*/
mpi_limb_t _gcry_mpih_lshift( mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
- unsigned cnt);
+ unsigned cnt) ATTR_ABI;
mpi_limb_t _gcry_mpih_rshift( mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
- unsigned cnt);
+ unsigned cnt) ATTR_ABI;
/* Define stuff for longlong.h. */
diff --git a/src/libgcrypt.def b/src/libgcrypt.def
index 1111111..2222222 100644
--- a/src/libgcrypt.def
+++ b/src/libgcrypt.def
@@ -1,3 +1,4 @@
+EXPORTS
;; libgcrypt.defs - Exported symbols for W32
;; Copyright (C) 2003, 2007 Free Software Foundation, Inc.
;;
@@ -22,7 +23,6 @@
;; never be changed. Also check libgcrypt.vers and visibility.h.
-EXPORTS
gcry_check_version @1
gcry_control @2
2016-04-16 08:26:16 +01:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2016-04-16 08:26:16 +01:00
From: Saikrishna Arcot <saiarcot895@gmail.com>
Date: Fri, 12 Jun 2015 14:53:55 -0700
Subject: [PATCH 2/3] Don't call git to determine the revision.
2016-04-16 08:26:16 +01:00
diff --git a/configure.ac b/configure.ac
index 1111111..2222222 100644
2016-04-16 08:26:16 +01:00
--- a/configure.ac
+++ b/configure.ac
@@ -38,13 +38,10 @@ m4_define(mym4_version_micro, [1])
2016-04-16 08:26:16 +01:00
# processing is done by autoconf and not during the configure run.
m4_define(mym4_version,
[mym4_version_major.mym4_version_minor.mym4_version_micro])
-m4_define([mym4_revision],
- m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
+m4_define([mym4_revision], [4091])
m4_define([mym4_revision_dec],
m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))]))
-m4_define([mym4_betastring],
- m4_esyscmd_s([git describe --match 'libgcrypt-[0-9].*[0-9]' --long|\
- awk -F- '$3!=0{print"-beta"$3}']))
+m4_define([mym4_betastring], [])
m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes]))
m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2016-04-16 08:26:16 +01:00
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 28 Jun 2015 17:17:25 +0200
Subject: [PATCH 3/3] configure.ac: no serial-tests if automake < 1.12
2016-04-16 08:26:16 +01:00
Earlier versions of automake complain if they get a configuration
parameter which they don't understand. The error is:
configure.ac:27: error: option 'serial-tests' not recognized
Use some m4 hackery to work around this.
Fix libgcrypt build under x86_64
See https://www.redhat.com/archives/libguestfs/2013-February/msg00102.html
diff --git a/configure.ac b/configure.ac
index 1111111..2222222 100644
2016-04-16 08:26:16 +01:00
--- a/configure.ac
+++ b/configure.ac
@@ -71,7 +71,24 @@ VERSION=$PACKAGE_VERSION
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_SRCDIR([src/libgcrypt.vers])
-AM_INIT_AUTOMAKE([serial-tests dist-bzip2])
+
+dnl Initialize automake. automake < 1.12 didn't have serial-tests and
+dnl gives an error if it sees this, but for automake >= 1.13
+dnl serial-tests is required so we have to include it. Solution is to
+dnl test for the version of automake (by running an external command)
+dnl and provide it if necessary. Note we have to do this entirely using
+dnl m4 macros since automake queries this macro by running
+dnl 'autoconf --trace ...'.
+m4_define([serial_tests], [
+ m4_esyscmd([automake --version |
+ head -1 |
+ awk '{split ($NF,a,"."); if (a[1] == 1 && a[2] >= 12) { '\
+ 'print "serial-tests" }}'
+ ])
+])
+dnl NB: Do not [quote] this parameter.
+AM_INIT_AUTOMAKE(serial_tests dist-bzip2)
+
AC_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_LIBOBJ_DIR([compat])