mirror of
https://github.com/openssl/openssl.git
synced 2025-03-19 19:50:42 +08:00
mkerr.pl: When writing internal FOOerr.h, pay attention to disablable modules
If a module is disablable (i.e. can be configured with 'no-FOO'), the resulting header file needs to be guarded with a check of the corresponding OPENSSL_NO_FOO. While this seem fairly innocuous, it has an impact on the information in util/*.num, generated by mkdef.pl. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5275)
This commit is contained in:
parent
3a7141df87
commit
cb7b727568
@ -674,10 +674,11 @@ generate_fuzz_oids:
|
||||
ERROR_REBUILD=
|
||||
errors:
|
||||
( cd $(SRCDIR); $(PERL) util/ck_errf.pl -strict */*.c */*/*.c )
|
||||
( cd $(SRCDIR); $(PERL) util/mkerr.pl $(ERROR_REBUILD) -internal )
|
||||
( cd $(SRCDIR)/engines; \
|
||||
( b=`pwd`; cd $(SRCDIR); \
|
||||
$(PERL) -I$$b util/mkerr.pl $(ERROR_REBUILD) -internal )
|
||||
( b=`pwd`; cd $(SRCDIR)/engines; \
|
||||
for E in *.ec ; do \
|
||||
$(PERL) ../util/mkerr.pl $(ERROR_REBUILD) -static \
|
||||
$(PERL) -I$$b ../util/mkerr.pl $(ERROR_REBUILD) -static \
|
||||
-conf $$E `basename $$E .ec`.c ; \
|
||||
done )
|
||||
|
||||
|
@ -9,6 +9,9 @@
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use lib ".";
|
||||
use configdata;
|
||||
|
||||
my $config = "crypto/err/openssl.ec";
|
||||
my $debug = 0;
|
||||
my $internal = 0;
|
||||
@ -430,6 +433,9 @@ foreach my $lib ( keys %errorfile ) {
|
||||
my @function = sort grep( /^${lib}_/, keys %fcodes );
|
||||
my @reasons = sort grep( /^${lib}_/, keys %rcodes );
|
||||
|
||||
# indent level for innermost preprocessor lines
|
||||
my $indent = " ";
|
||||
|
||||
# Rewrite the header file
|
||||
|
||||
my $hfile = $hinc{$lib};
|
||||
@ -453,14 +459,24 @@ EOF
|
||||
if ( $internal ) {
|
||||
# Declare the load function because the generate C file
|
||||
# includes "fooerr.h" not "foo.h"
|
||||
if ($lib ne "SSL" && $lib ne "ASYNC"
|
||||
&& grep { $lib eq uc $_ } @disablables) {
|
||||
print OUT <<"EOF";
|
||||
# include <openssl/opensslconf.h>
|
||||
|
||||
# ifndef OPENSSL_NO_${lib}
|
||||
|
||||
EOF
|
||||
$indent = " ";
|
||||
}
|
||||
print OUT <<"EOF";
|
||||
# ifdef __cplusplus
|
||||
#${indent}ifdef __cplusplus
|
||||
extern \"C\" {
|
||||
# endif
|
||||
#${indent}endif
|
||||
int ERR_load_${lib}_strings(void);
|
||||
# ifdef __cplusplus
|
||||
#${indent}ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
#${indent}endif
|
||||
EOF
|
||||
} else {
|
||||
print OUT <<"EOF";
|
||||
@ -498,7 +514,7 @@ EOF
|
||||
$fassigned{$lib} .= "$findcode:";
|
||||
print STDERR "New Function code $i\n" if $debug;
|
||||
}
|
||||
printf OUT "# define $i%s $fcodes{$i}\n", " " x $z;
|
||||
printf OUT "#${indent}define $i%s $fcodes{$i}\n", " " x $z;
|
||||
}
|
||||
|
||||
print OUT "\n/*\n * $lib reason codes.\n */\n";
|
||||
@ -516,11 +532,14 @@ EOF
|
||||
$rassigned{$lib} .= "$findcode:";
|
||||
print STDERR "New Reason code $i\n" if $debug;
|
||||
}
|
||||
printf OUT "# define $i%s $rcodes{$i}\n", " " x $z;
|
||||
printf OUT "#${indent}define $i%s $rcodes{$i}\n", " " x $z;
|
||||
}
|
||||
print OUT "\n";
|
||||
|
||||
print OUT "#endif\n";
|
||||
while (length($indent) > 0) {
|
||||
$indent = substr $indent, 0, -1;
|
||||
print OUT "#${indent}endif\n";
|
||||
}
|
||||
|
||||
# Rewrite the C source file containing the error details.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user