Configure: Check if 128-bit integers are supported by compiler
authorAmitay Isaacs <amitay@ozlabs.org>
Tue, 6 Apr 2021 02:52:44 +0000 (12:52 +1000)
committerMatt Caswell <matt@openssl.org>
Thu, 8 Apr 2021 11:18:10 +0000 (12:18 +0100)
Add a config variable "use_int128" to indicate if 128-bit integers are
supported or not at the configure time.  This makes it easier to
automatically select 64-bit versus 32-bit implementation for curve448.

Signed-off-by: Amitay Isaacs <amitay@ozlabs.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14784)

Configure

index 64d809258d0b3023e76c6d46d27a0036b447febd..e36c5d93aaaf1f2353b10bddff8ece34bf68cb16 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -1573,6 +1573,20 @@ if (!$disabled{asm} && !$predefined_C{__MACH__} && $^O ne 'VMS') {
     }
 }
 
+# Check if __SIZEOF_INT128__ is defined by compiler
+$config{use_int128} = 0;
+{
+    my $cc = $config{CROSS_COMPILE}.$config{CC};
+    open(PIPE, "$cc -E -dM - </dev/null 2>&1 |");
+    while(<PIPE>) {
+        if (m/__SIZEOF_INT128__/) {
+            $config{use_int128} = 1;
+            last;
+        }
+    }
+    close(PIPE);
+}
+
 # Deal with bn_ops ###################################################
 
 $config{bn_ll}                  =0;