diff options
author | Boris Pismenny <borisp@mellanox.com> | 2018-02-01 14:10:22 +0200 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2018-12-07 11:25:45 +0000 |
commit | 69495e3df57335ad43bc66fa2477636f66afed85 (patch) | |
tree | 78e01a28f327509a29471568cc47ac68e16f4cc5 /Configure | |
parent | fe3ad3aee37f7bcb52c647a4f1c8a6f60360d095 (diff) | |
download | openssl-69495e3df57335ad43bc66fa2477636f66afed85.tar.gz |
Configure Kernel TLS datapath
Allow users to disable ktls using the "no-ktls" option.
Also, disable ktls when cross-compiling, non-linux, or too-old-kernel.
Signed-off-by: Boris Pismenny <borisp@mellanox.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Yang <yang.yang@baishancloud.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5253)
Diffstat (limited to 'Configure')
-rwxr-xr-x | Configure | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -318,6 +318,7 @@ my @dtls = qw(dtls1 dtls1_2); # For developers: keep it sorted alphabetically my @disablables = ( + "ktls", "afalgeng", "aria", "asan", @@ -448,6 +449,7 @@ our %disabled = ( # "what" => "comment" "weak-ssl-ciphers" => "default", "zlib" => "default", "zlib-dynamic" => "default", + "ktls" => "default", ); # Note: => pair form used for aesthetics, not to truly make a hash table @@ -1570,6 +1572,27 @@ unless ($disabled{afalgeng}) { push @{$config{openssl_feature_defines}}, "OPENSSL_NO_AFALGENG" if ($disabled{afalgeng}); +unless ($disabled{ktls}) { + $config{ktls}=""; + if ($target =~ m/^linux/) { + my $usr = "/usr/$config{cross_compile_prefix}"; + chop($usr); + if ($config{cross_compile_prefix} eq "") { + $usr = "/usr"; + } + my $minver = (4 << 16) + (13 << 8) + 0; + my @verstr = split(" ",`cat $usr/include/linux/version.h | grep LINUX_VERSION_CODE`); + + if ($verstr[2] < $minver) { + $disabled{ktls} = "too-old-kernel"; + } + } else { + $disabled{ktls} = "not-linux"; + } +} + +push @{$config{openssl_other_defines}}, "OPENSSL_NO_KTLS" if ($disabled{ktls}); + # Finish up %config by appending things the user gave us on the command line # apart from "make variables" foreach (keys %useradd) { |