aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Configurations/unix-Makefile.tmpl7
-rwxr-xr-xutil/mkerr.pl33
2 files changed, 30 insertions, 10 deletions
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
index 3dd66b8..9e05fd1 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/Configurations/unix-Makefile.tmpl
@@ -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 )
diff --git a/util/mkerr.pl b/util/mkerr.pl
index 52a44c9..1740e40 100755
--- a/util/mkerr.pl
+++ b/util/mkerr.pl
@@ -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.