Fix util/mkerr.pl
- Adjust mkerr.pl to produce the line length we used for source reformating. - Have mkerr.pl keep track of preprocessor directive indentation Among others, do not spuriously throw away a #endif at the end of header files. - Make sure mkerr.pl specifies any header inclusion correctly Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
f3e235ed6f
commit
97665e1c4f
1 changed files with 37 additions and 17 deletions
|
@ -7,7 +7,6 @@
|
|||
# https://www.openssl.org/source/license.html
|
||||
|
||||
my $config = "crypto/err/openssl.ec";
|
||||
my $hprefix = "openssl/";
|
||||
my $debug = 0;
|
||||
my $unref = 0;
|
||||
my $rebuild = 0;
|
||||
|
@ -70,6 +69,8 @@ Options:
|
|||
-hprefix P Prepend the filenames in generated #include <header>
|
||||
statements with prefix P. Default: 'openssl/' (without
|
||||
the quotes, naturally)
|
||||
NOTE: not used any more because our include directory
|
||||
structure has changed.
|
||||
|
||||
-debug Turn on debugging verbose output on stderr.
|
||||
|
||||
|
@ -173,8 +174,8 @@ close IN;
|
|||
while (($hdr, $lib) = each %libinc)
|
||||
{
|
||||
next if($hdr eq "NONE");
|
||||
print STDERR "Scanning header file $hdr\n" if $debug;
|
||||
my $line = "", $def= "", $linenr = 0, $gotfile = 0;
|
||||
print STDERR "Scanning header file $hdr\n" if $debug;
|
||||
my $line = "", $def= "", $linenr = 0, $gotfile = 0, $cpp = 0;
|
||||
if (open(IN, "<$hdr")) {
|
||||
$gotfile = 1;
|
||||
while(<IN>) {
|
||||
|
@ -409,14 +410,21 @@ foreach $lib (keys %csrc)
|
|||
|
||||
# Rewrite the header file
|
||||
|
||||
$cpp = 0;
|
||||
$cplusplus = 0;
|
||||
if (open(IN, "<$hfile")) {
|
||||
# Copy across the old file
|
||||
while(<IN>) {
|
||||
$cplusplus = $cpp if /^#.*ifdef.*cplusplus/;
|
||||
$cpp++ if /^#\s*if/;
|
||||
$cpp-- if /^#\s*endif/;
|
||||
push @out, $_;
|
||||
last if (/BEGIN ERROR CODES/);
|
||||
}
|
||||
close IN;
|
||||
} else {
|
||||
$cpp = 1;
|
||||
$cplusplus = 1;
|
||||
push @out,
|
||||
"/*\n",
|
||||
" * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.\n",
|
||||
|
@ -428,11 +436,11 @@ foreach $lib (keys %csrc)
|
|||
" */\n",
|
||||
"\n",
|
||||
"#ifndef HEADER_${lib}_ERR_H\n",
|
||||
"#define HEADER_${lib}_ERR_H\n",
|
||||
"# define HEADER_${lib}_ERR_H\n",
|
||||
"\n",
|
||||
"#ifdef __cplusplus\n",
|
||||
"# ifdef __cplusplus\n",
|
||||
"extern \"C\" {\n",
|
||||
"#endif\n",
|
||||
"# endif\n",
|
||||
"\n",
|
||||
"/* BEGIN ERROR CODES */\n";
|
||||
}
|
||||
|
@ -441,15 +449,16 @@ foreach $lib (keys %csrc)
|
|||
print OUT @out;
|
||||
undef @out;
|
||||
print OUT <<"EOF";
|
||||
|
||||
/*
|
||||
* Content after this point is generated by util/mkerr.pl
|
||||
* DO NOT EDIT!
|
||||
* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||
* made after this point may be overwritten when the script is next run.
|
||||
*/
|
||||
|
||||
EOF
|
||||
if($static) {
|
||||
print OUT <<"EOF";
|
||||
${staticloader}void ERR_load_${lib}_strings(void);
|
||||
|
||||
EOF
|
||||
} else {
|
||||
print OUT <<"EOF";
|
||||
|
@ -505,11 +514,17 @@ EOF
|
|||
}
|
||||
print OUT <<"EOF";
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
do {
|
||||
if ($cplusplus == $cpp) {
|
||||
print OUT "#", " "x$cpp, "ifdef __cplusplus\n";
|
||||
print OUT "}\n";
|
||||
print OUT "#", " "x$cpp, "endif\n";
|
||||
}
|
||||
if ($cpp-- > 0) {
|
||||
print OUT "#", " "x$cpp, "endif\n";
|
||||
}
|
||||
} while ($cpp);
|
||||
close OUT;
|
||||
|
||||
# Rewrite the C source file containing the error details.
|
||||
|
@ -541,8 +556,13 @@ EOF
|
|||
|
||||
my $hincf;
|
||||
if($static) {
|
||||
$hfile =~ /([^\/]+)$/;
|
||||
$hincf = "<${hprefix}$1>";
|
||||
$hincf = $hfile;
|
||||
$hincf =~ s|.*include/||;
|
||||
if ($hincf =~ m|^openssl/|) {
|
||||
$hincf = "<${hincf}>";
|
||||
} else {
|
||||
$hincf = "\"${hincf}\"";
|
||||
}
|
||||
} else {
|
||||
$hincf = "\"$hfile\"";
|
||||
}
|
||||
|
@ -596,7 +616,7 @@ EOF
|
|||
$fn = $ftrans{$fn};
|
||||
}
|
||||
# print OUT "{ERR_PACK($pack_errcode,$i,0),\t\"$fn\"},\n";
|
||||
if(length($i) + length($fn) > 58) {
|
||||
if(length($i) + length($fn) > 57) {
|
||||
print OUT " {ERR_FUNC($i),\n \"$fn\"},\n";
|
||||
} else {
|
||||
print OUT " {ERR_FUNC($i), \"$fn\"},\n";
|
||||
|
@ -619,7 +639,7 @@ EOF
|
|||
$rn = $1;
|
||||
$rn =~ tr/_[A-Z]/ [a-z]/;
|
||||
}
|
||||
if(length($i) + length($rn) > 56) {
|
||||
if(length($i) + length($rn) > 55) {
|
||||
print OUT " {${rstr},\n \"$rn\"},\n";
|
||||
} else {
|
||||
print OUT " {${rstr}, \"$rn\"},\n";
|
||||
|
|
Loading…
Reference in a new issue