util/perl/OpenSSL/config.pm: Rework determining compiler information
[openssl.git] / util / mknum.pl
index a5f96b73739da0d85034e5dad522a8d0b44208a7..871c07055b365161dcaedfca127097170c7a0596 100644 (file)
@@ -2,7 +2,7 @@
 #! /usr/bin/env perl
 # Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
 #
-# Licensed under the OpenSSL license (the "License").  You may not use
+# Licensed under the Apache License 2.0 (the "License").  You may not use
 # this file except in compliance with the License.  You can obtain a copy
 # in the file LICENSE in the source distribution or at
 # https://www.openssl.org/source/license.html
@@ -88,6 +88,13 @@ foreach my $f (($symhacks_file // (), @ARGV)) {
     close IN;
 }
 
+# As long as we're running in development or alpha releases, we can have
+# symbols without specific numbers assigned.  When in beta or final release,
+# all symbols MUST have an assigned number.
+if ($version !~ m/^\d+\.\d+\.\d+(?:[a-z]+)?-(?:dev|alpha)/) {
+    $ordinals->renumber();
+}
+
 if ($checkexist) {
     my %new_names = map { $_->name() => 1 }
         $ordinals->items(comparator => sub { $_[0] cmp $_[1] },
@@ -121,5 +128,9 @@ if ($checkexist) {
     } else {
         print STDERR "${ordinals_file}: No new symbols added\n";
     }
-
+    if ($stats{unassigned}) {
+        my $symbol = $stats{unassigned} == 1 ? "symbol" : "symbols";
+        my $is = $stats{unassigned} == 1 ? "is" : "are";
+        print STDERR "${ordinals_file}: $stats{unassigned} $symbol $is without ordinal number\n";
+    }
 }