From 2284f64c871c2f7611678dba6eadd1989cee9981 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Thu, 27 Sep 2018 15:29:29 +0200 Subject: util/mkdef.pl: prepare for DEPRECATEDIN_X This is in preparation for new versioning scheme, where the recommendation is to start deprecations at major version boundary. Reviewed-by: Tim Hudson Reviewed-by: Matthias St. Pierre Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/7724) --- util/mkdef.pl | 4 ++-- util/perl/OpenSSL/ParseC.pm | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/util/mkdef.pl b/util/mkdef.pl index b40fd2654f..9cb1147d28 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -193,8 +193,8 @@ sub feature_filter { if ($apiv) { foreach (@features) { - next unless /^DEPRECATEDIN_(\d+)_(\d+)_(\d+)$/; - my $symdep = sprintf "%x%02x%02x", $1, $2, $3; + next unless /^DEPRECATEDIN_(\d+)(?:_(\d+)_(\d+))?$/; + my $symdep = sprintf "%x%02x%02x", $1, ($2 // 0), ($3 // 0); $verdict = 0 if $apiv ge $symdep; } } diff --git a/util/perl/OpenSSL/ParseC.pm b/util/perl/OpenSSL/ParseC.pm index ba2427ccfa..81472ef5eb 100644 --- a/util/perl/OpenSSL/ParseC.pm +++ b/util/perl/OpenSSL/ParseC.pm @@ -72,11 +72,14 @@ my @opensslcpphandlers = ( if ($op ne '<' && $op ne '>=') { die "Error: unacceptable operator $op: $_[0]\n"; } - my ($one, $major, $minor) = + my ($major, $minor, $edit) = ( ($v >> 28) & 0xf, ($v >> 20) & 0xff, ($v >> 12) & 0xff ); - my $t = "DEPRECATEDIN_${one}_${major}_${minor}"; + my $t = "DEPRECATEDIN_" . + ($major <= 1 + ? "${major}_${minor}_${edit}" + : "${major}"); my $cond = $op eq '<' ? 'ifndef' : 'ifdef'; return (<<"EOF"); #$cond $t @@ -284,7 +287,7 @@ EOF # We trick the parser by pretending that the declaration is wrapped in a # check if the DEPRECATEDIN macro is defined or not. Callers of parse() # will have to decide what to do with it. - { regexp => qr/(DEPRECATEDIN_\d+_\d+_\d+)<<<\((.*)\)>>>/, + { regexp => qr/(DEPRECATEDIN_\d+(?:_\d+_\d+)?)<<<\((.*)\)>>>/, massager => sub { return (<<"EOF"); #ifndef $1 $2; -- cgit v1.2.3