summaryrefslogtreecommitdiffstats
path: root/util/mkdef.pl
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-01-12 01:07:46 +0100
committerRichard Levitte <levitte@openssl.org>2016-01-12 04:44:24 +0100
commitfd40db9ecd39302e4d5c6f4e3929a02d0b093d76 (patch)
treed49be22c353a170cc3f5b1b27f208c34d852b60c /util/mkdef.pl
parent6bd3e10b64c6815b233d75f15aa05cbd7c238c01 (diff)
The limit per SYMBOL_VECTOR isn't the amount of symbols, it's the line length
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'util/mkdef.pl')
-rwxr-xr-xutil/mkdef.pl33
1 files changed, 19 insertions, 14 deletions
diff --git a/util/mkdef.pl b/util/mkdef.pl
index 6d5b00dfc0..da2dbd3e5b 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -1198,7 +1198,7 @@ sub print_def_file
my $prevsymversion = "", $prevprevsymversion = "";
# For VMS
my $prevnum = 0;
- my $symbolcount = 0;
+ my $symvtextcount = 0;
if ($W32)
{ $libname.="32"; }
@@ -1240,6 +1240,7 @@ LIB$libname.OLB /LIBRARY
$libref
SYMBOL_VECTOR=(-
EOF
+ $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
}
(@r)=grep(/^\w+(\{[0-9]+\})?\\.*?:.*?:FUNCTION/,@symbols);
@@ -1303,25 +1304,29 @@ EOF
print OUT " $s2;\n";
} elsif ($VMS) {
while(++$prevnum < $n) {
- if ($symbolcount > 1023) {
+ my $symline="dummy$prevcount=PRIVATE_PROCEDURE -";
+ if ($symvtextcount + length($symline) + 1 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
- $symbolcount = 0;
+ $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
}
- print OUT $symbolcount
- ? " ," : " ";
- print OUT "dummy$prevnum=PRIVATE_PROCEDURE -\n";
- $symbolcount++;
+ if ($symvtextcount > 16) {
+ $symline = ",".$symline;
+ }
+ print OUT " $symline\n";
+ $symvtextcount += length($symline);
}
(my $s_uc = $s) =~ tr/a-z/A-Z/;
- if ($symbolcount > 1023) {
+ my $symline="$s_uc/$s="
+ , ($v ? "DATA" : "PROCEDURE"), " -\n";
+ if ($symvtextcount + length($symline) + 1 > 1024) {
print OUT ")\nSYMBOL_VECTOR=(-\n";
- $symbolcount = 0;
+ $symvtextcount = 16; # length of "SYMBOL_VECTOR=(-"
}
- print OUT $symbolcount
- ? " ," : " ";
- print OUT "$s_uc/$s="
- , ($v ? "DATA" : "PROCEDURE"), " -\n";
- $symbolcount++;
+ if ($symvtextcount > 16) {
+ $symline = ",".$symline;
+ }
+ print OUT " $symline\n";
+ $symvtextcount += length($symline);
} elsif($v && !$OS2) {
printf OUT " %s%-39s @%-8d DATA\n",
($W32)?"":"_",$s2,$n;