From b05d63273277e0a17ade780b6bef2c48cfd3e522 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Thu, 6 Feb 2020 11:26:22 +0100 Subject: [PATCH] Configure: Add easy to use disabled deprecated functionality indicators In C, we have macros like OPENSSL_NO_DEPRECATED_3_0 to check if some section of code should be disabled to simulate a removal of things deprecated in the version. In perl, we had to check $disabled{deprecated} and compare $config{api} with the proper version code, which is doable but tedious and error prone. This change adds $disabled{'deprecated-x.y'} (x.y being a version number) which directly corresponds to OPENSSL_NO_DEPRECATED_x_y, for use in build.info conditions, test recipes and other perl stuff. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/11027) --- Configure | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Configure b/Configure index 696f15ab0f..2dd0520d3d 100755 --- a/Configure +++ b/Configure @@ -561,8 +561,7 @@ my @disable_cascades = ( "cmp" => [ "crmf" ], # Padlock engine uses low-level AES APIs which are deprecated - sub { $disabled{"deprecated"} - && (!defined $config{"api"} || $config{"api"} >= 30000) } + sub { $disabled{"deprecated-3.0"} } => [ "padlockeng" ] ); @@ -1477,6 +1476,12 @@ die "Exactly one of SIXTY_FOUR_BIT|SIXTY_FOUR_BIT_LONG|THIRTY_TWO_BIT can be set $config{api} = $config{major} * 10000 + $config{minor} * 100 unless $config{api}; +foreach (keys %$apitable) { + $disabled{"deprecated-$_"} = "deprecation" + if $disabled{deprecated} && $config{api} >= $apitable->{$_}; +} + +disable(); # Run a cascade now # Hack cflags for better warnings (dev option) ####################### @@ -1488,7 +1493,7 @@ $config{cxxflags} = [ map { (my $x = $_) =~ s/([\\\"])/\\$1/g; $x } @{$config{cxxflags}} ] if $config{CXX}; $config{openssl_api_defines} = [ - "OPENSSL_CONFIGURED_API=".$config{api} + "OPENSSL_CONFIGURED_API=".$config{api}, ]; my @strict_warnings_collection=(); @@ -1647,6 +1652,9 @@ foreach my $what (sort keys %disabled) { # There are deprecated disablables that translate to themselves. # They cause disabling cascades, but should otherwise not regiter. next if $deprecated_disablables{$what}; + # The generated $disabled{"deprecated-x.y"} entries are special + # and treated properly elsewhere + next if $what =~ m|^deprecated-|; $config{options} .= " no-$what"; -- 2.25.1