--- origsrc/libgcrypt-1.5.0/acinclude.m4 2011-02-23 05:09:19.000000000 -0600 +++ src/libgcrypt-1.5.0/acinclude.m4 2013-03-12 19:16:58.938645200 -0500 @@ -70,9 +70,12 @@ AC_DEFUN([GNUPG_CHECK_GNUMAKE], AC_DEFUN([GNUPG_SYS_SYMBOL_UNDERSCORE], [tmp_do_check="no" case "${host}" in - *-mingw32msvc*) + i?86*-*-mingw32* | i?86-*-cygwin* | i?86-*-msys*) ac_cv_sys_symbol_underscore=yes ;; + x86_64-*-mingw32* | x86_64-*-cygwin* | x86_64-*-msys*) + ac_cv_sys_symbol_underscore=no + ;; i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp) ac_cv_sys_symbol_underscore=yes ;; --- origsrc/libgcrypt-1.5.0/mpi/generic/mpi-asm-defs.h 2010-12-23 07:59:11.000000000 -0600 +++ src/libgcrypt-1.5.0/mpi/generic/mpi-asm-defs.h 2013-03-12 20:48:14.656973200 -0500 @@ -1,7 +1,11 @@ /* This file defines some basic constants for the MPI machinery. We * need to define the types on a per-CPU basis, so it is done with * this file here. */ +#ifdef _WIN64 +#define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG_LONG) +#else #define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG) +#endif --- origsrc/libgcrypt-1.5.0/mpi/mpi-internal.h 2011-02-04 13:15:39.000000000 -0600 +++ src/libgcrypt-1.5.0/mpi/mpi-internal.h 2013-03-12 20:26:19.542974900 -0500 @@ -167,6 +167,11 @@ typedef int mpi_size_t; /* (must (q) = _q; \ } while (0) +#if defined(_WIN64) || defined(__CYGWIN__) && defined(__x86_64__) +#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)) @@ -186,7 +191,7 @@ void _gcry_mpi_lshift_limbs( gcry_mpi_t 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); @@ -194,7 +199,7 @@ mpi_limb_t _gcry_mpih_add(mpi_ptr_t res_ 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); @@ -216,9 +221,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, @@ -235,7 +240,7 @@ void _gcry_mpih_mul_karatsuba_case( mpi_ /*-- 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, @@ -249,9 +254,9 @@ mpi_limb_t _gcry_mpih_divmod_1( mpi_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. */