Configure death handler: instead of printing directly, amend the message

This is done by calling die again, just make sure to reset the __DIE__
handler first.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6776)
This commit is contained in:
Richard Levitte 2018-07-24 21:46:55 +02:00
parent 88accfe6dc
commit eb807d5383
1 changed files with 6 additions and 3 deletions

View File

@ -2722,16 +2722,19 @@ exit(0);
# Death handler, to print a helpful message in case of failure #######
#
sub death_handler {
die @_ if $^S;
die @_ if $^S; # To prevent the added message in eval blocks
my $build_file = $target{build_file} // "build file";
print STDERR <<"_____";
my @message = ( <<"_____", @_ );
Failure! $build_file wasn't produced.
Please read INSTALL and associated NOTES files. You may also have to look over
your available compiler tool chain or change your configuration.
_____
$orig_death_handler->(@_) if defined $orig_death_handler;
# Dying is terminal, so it's ok to reset the signal handler here.
$SIG{__DIE__} = $orig_death_handler;
die @message;
}
# Configuration file reading #########################################