aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-01-12 03:42:56 +0100
committerRichard Levitte <levitte@openssl.org>2016-01-12 04:44:24 +0100
commitd9aad55a50c6291a8e2cbde13cd896185ba13861 (patch)
tree56a58a929e5bcae3c59c395e1a11f68c45124f3c /util
parentd4b009d5f88875ac0e3ac0b2b9689ed16a4c88dc (diff)
downloadopenssl-d9aad55a50c6291a8e2cbde13cd896185ba13861.tar.gz
Make sure to have both upper and mixed case symbols in SYMBOL_VECTOR
It was assumed that the syntax FOO/Foo=PROCEDURE would create both an upper case and mixed case symbol in the GST. Not so, it requires having both FOO/Foo=PROCEDURE (to create the upper case alias) and Foo=PROCEDURE (to create the mixed case slot). We make sure that any symbol always occupies two slots (even those that don't exist) by filling up with SPARE when necessary. That will assure that any changes will still have the same symbols in the same slots no matter what (save a complete rewrite of the ordinals files). Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'util')
-rwxr-xr-xutil/mkdef.pl11
1 files changed, 8 insertions, 3 deletions
diff --git a/util/mkdef.pl b/util/mkdef.pl
index a2fdada181..ff018e9bb8 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -1304,7 +1304,7 @@ EOF
print OUT " $s2;\n";
} elsif ($VMS) {
while(++$prevnum < $n) {
- my $symline="SPARE -";
+ my $symline="SPARE, SPARE -";
if ($symvtextcount + length($symline) + 1 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
@@ -1316,8 +1316,13 @@ EOF
$symvtextcount += length($symline);
}
(my $s_uc = $s) =~ tr/a-z/A-Z/;
- my $symline="$s_uc/$s="
- , ($v ? "DATA" : "PROCEDURE"), " -\n";
+ my $symtype=
+ $v ? "DATA" : "PROCEDURE";
+ my $symline=
+ ($s_uc ne $s
+ ? "$s_uc/$s=$symtype, $s=$symtype"
+ : "$s=$symtype, SPARE")
+ ." -";
if ($symvtextcount + length($symline) + 1 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
$symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"