Configure: Check if 128-bit integers are supported by compiler

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)
This commit is contained in:
Amitay Isaacs 2021-04-06 12:52:44 +10:00 committed by Matt Caswell
parent f684a2d783
commit a72da9eceb
1 changed files with 14 additions and 0 deletions

View File

@ -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;