X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=util%2Fmkerr.pl;h=79c8cfc31c4365afc38de6c7b21c0ce55e1502e7;hb=81d5808064949e6f23c1eaac4b24f09c8b1255db;hp=b754a453cd85979072f1c1e483abb6578d6a885f;hpb=e8b7c0c4726fbd15d2b23da075c5b4a35d6c7790;p=oweals%2Fopenssl.git diff --git a/util/mkerr.pl b/util/mkerr.pl index b754a453cd..79c8cfc31c 100644 --- a/util/mkerr.pl +++ b/util/mkerr.pl @@ -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
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() { @@ -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() { + $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,19 +449,20 @@ 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); +${staticloader}int ERR_load_${lib}_strings(void); + EOF } else { print OUT <<"EOF"; -${staticloader}void ERR_load_${lib}_strings(void); +${staticloader}int ERR_load_${lib}_strings(void); ${staticloader}void ERR_unload_${lib}_strings(void); ${staticloader}void ERR_${lib}_error(int function, int reason, char *file, int line); # define ${lib}err(f,r) ERR_${lib}_error((f),(r),OPENSSL_FILE,OPENSSL_LINE) @@ -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"; @@ -632,7 +652,7 @@ if($static) { #endif -${staticloader}void ERR_load_${lib}_strings(void) +${staticloader}int ERR_load_${lib}_strings(void) { #ifndef OPENSSL_NO_ERR @@ -641,6 +661,7 @@ ${staticloader}void ERR_load_${lib}_strings(void) ERR_load_strings($load_errcode, ${lib}_str_reasons); } #endif + return 1; } EOF } else { @@ -660,7 +681,7 @@ static ERR_STRING_DATA ${lib}_lib_name[] = { static int ${lib}_lib_error_code = 0; static int ${lib}_error_init = 1; -${staticloader}void ERR_load_${lib}_strings(void) +${staticloader}int ERR_load_${lib}_strings(void) { if (${lib}_lib_error_code == 0) ${lib}_lib_error_code = ERR_get_next_error_library(); @@ -677,6 +698,7 @@ ${staticloader}void ERR_load_${lib}_strings(void) ERR_load_strings(0, ${lib}_lib_name); #endif } + return 1; } ${staticloader}void ERR_unload_${lib}_strings(void)