# 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 #########################################