X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=util%2Fmkerr.pl;h=0ea02961a5fdea9bb0427eacd97a4035e97f623a;hp=51177b9d414dc2e9233cabaed32b47f8b8c9da70;hb=72ff0a540059633b7906a78d5d06087d5ce7b7ad;hpb=0ffdaebf9a327f3b356df1cf72d74dd15ead7d13 diff --git a/util/mkerr.pl b/util/mkerr.pl index 51177b9d41..0ea02961a5 100755 --- a/util/mkerr.pl +++ b/util/mkerr.pl @@ -1,5 +1,5 @@ #! /usr/bin/env perl -# Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy @@ -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,21 @@ 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 + +# ifndef OPENSSL_NO_${lib} + +EOF + $indent = " "; + } print OUT <<"EOF"; -# ifdef __cplusplus -extern \"C\" { -# endif +#${indent}ifdef __cplusplus +extern \"C\" +#${indent}endif int ERR_load_${lib}_strings(void); -# ifdef __cplusplus -} -# endif EOF } else { print OUT <<"EOF"; @@ -498,7 +511,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 +529,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. @@ -702,7 +718,7 @@ if ( $newstate ) { open(OUT, ">$statefile.new") || die "Can't write $statefile.new, $!"; print OUT <<"EOF"; -# Copyright 1999-2017 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 1999-$YEAR The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the OpenSSL license (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy