summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2015-03-31 22:08:39 +0200
committerNiels Möller <nisse@lysator.liu.se>2015-03-31 22:08:39 +0200
commit5ba1d4e119c1a9bce214219e60cd33bb79900b4c (patch)
treeaa3ca08b2af48914337e8def5c3be91071de20c5
parent9c95a3d32c006d1351bacf27d544ac1979b4ecb3 (diff)
downloadnettle-5ba1d4e119c1a9bce214219e60cd33bb79900b4c.tar.gz
Exclude asm files which fail when building on w64 using mini-gmp.nettle_3.1rc3
-rw-r--r--ChangeLog10
-rw-r--r--asm.m42
-rw-r--r--configure.ac7
-rw-r--r--x86_64/ecc-224-modp.asm2
-rw-r--r--x86_64/ecc-521-modp.asm2
5 files changed, 23 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 9b416ecc..058691eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,17 @@
2015-03-31 Niels Möller <nisse@diamant.hack.org>
+ * x86_64/ecc-224-modp.asm: Require that GMP_NUMB_BITS == 64.
+ * x86_64/ecc-521-modp.asm: Likewise. Note that the other
+ ecc-*-modp.asm files happen to work fine on x86_64, with either 32
+ or 64 bits.
+
+ * asm.m4 (GMP_NUMB_BITS): New macro, expanding to nothing.
+
* configure.ac: Move tests for compiler characteristics,
libraries, and GMP_NUMB_BITS, before assembler-related tests.
+ For files in $asm_hogweed_optional_list, check if they declare
+ a GMP_NUMB_BITS requirement, and skip files which are incompatible
+ with the configuration. Needed for --enable-mini-gmp om w64.
* Makefile.in (clean-here): Unconditionally delete *.a (including
stub libraries like *.dll.a).
diff --git a/asm.m4 b/asm.m4
index bbc90bd4..4018c235 100644
--- a/asm.m4
+++ b/asm.m4
@@ -27,6 +27,8 @@ COFF_STYLE, yes,
.endef>,
<>)>)
+define(<GMP_NUMB_BITS>,<>)dnl
+
define(<PROLOGUE>,
<.globl C_NAME($1)
DECLARE_FUNC(C_NAME($1))
diff --git a/configure.ac b/configure.ac
index 30071f9f..5a16151d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -464,6 +464,13 @@ EOF
tmp_b=`echo "$tmp_h" | sed 's/\.[[^.]]*$//'`
for asm_dir in $asm_path ; do
if test -f "$srcdir/$asm_dir/$tmp_h"; then
+ dnl Note double square brackets, for extra m4 quoting.
+ tmp_bits=`grep GMP_NUMB_BITS "$srcdir/$asm_dir/$tmp_h" \
+ | sed 's/^.*GMP_NUMB_BITS(\([[0-9]]*\)).*$/\1/'`
+ if test "$tmp_bits" && test "$tmp_bits" != '${GMP_NUMB_BITS}' ; then
+ AC_MSG_WARN([skipping $tmp_h, because GMP_NUMB_BITS != $tmp_bits])
+ continue
+ fi
asm_file_list="$asm_file_list $tmp_h"
AC_CONFIG_LINKS($tmp_h:$asm_dir/$tmp_h)
while read tmp_func ; do
diff --git a/x86_64/ecc-224-modp.asm b/x86_64/ecc-224-modp.asm
index 282859c6..07bd4003 100644
--- a/x86_64/ecc-224-modp.asm
+++ b/x86_64/ecc-224-modp.asm
@@ -32,6 +32,8 @@ ifelse(<
.file "ecc-224-modp.asm"
+GMP_NUMB_BITS(64)
+
define(<RP>, <%rsi>)
define(<T0>, <%rdi>) C Overlaps unused modulo input
define(<T1>, <%rcx>)
diff --git a/x86_64/ecc-521-modp.asm b/x86_64/ecc-521-modp.asm
index 69dc1f06..6e818ad8 100644
--- a/x86_64/ecc-521-modp.asm
+++ b/x86_64/ecc-521-modp.asm
@@ -32,6 +32,8 @@ ifelse(<
.file "ecc-521-modp.asm"
+GMP_NUMB_BITS(64)
+
define(<RP>, <%rsi>)
define(<U0>, <%rax>)
define(<U1>, <%rbx>)