Configure: print generic advice when dying
authorRichard Levitte <levitte@openssl.org>
Tue, 24 Jul 2018 08:45:05 +0000 (10:45 +0200)
committerRichard Levitte <levitte@openssl.org>
Tue, 24 Jul 2018 14:31:58 +0000 (16:31 +0200)
On the same note, change the 'NASM not found' message to give specific
advice on how to handle the failure.

Fixes #6765

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6771)

(cherry picked from commit 8937a4ed8ac3fd64be61e9ce7a16bccccf3d2273)

Configurations/10-main.conf
Configure

index 7e667052610b48c7451a27f08b21fec1d1935ee5..6c05c2809f18481c2dc1f02c3efb0a13ab8ef10b 100644 (file)
@@ -14,7 +14,7 @@ sub vc_win64a_info {
                                 asflags   => "/c /Cp /Cx /Zi",
                                 asoutflag => "/Fo" };
         } else {
-            $die->("NASM not found - please read INSTALL and NOTES.WIN for further details\n");
+            $die->("NASM not found - make sure it's installed and available on %PATH%\n");
             $vc_win64a_info = { as        => "{unknown}",
                                 asflags   => "",
                                 asoutflag => "" };
@@ -39,7 +39,7 @@ sub vc_win32_info {
                                asoutflag => "/Fo",
                                perlasm_scheme => "win32" };
         } else {
-            $die->("NASM not found - please read INSTALL and NOTES.WIN for further details\n");
+            $die->("NASM not found - make sure it's installed and available on %PATH%\n");
             $vc_win32_info = { as        => "{unknown}",
                                asflags   => "",
                                asoutflag => "",
index f819cab725b35974faa5acb19c0cddcd83a69318..19bab077791871586735ecb8fdabc4c5039fb3fe 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,6 +20,9 @@ use OpenSSL::Glob;
 
 # see INSTALL for instructions.
 
+my $orig_death_handler = $SIG{__DIE__};
+$SIG{__DIE__} = \&death_handler;
+
 my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx] [no-hw-xxx|no-hw] [[no-]threads] [[no-]shared] [[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-egd] [sctp] [386] [--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]] [--config=FILE] os/compiler[:flags]\n";
 
 # Options:
@@ -2127,6 +2130,8 @@ my %builders = (
 
 $builders{$builder}->($builder_platform, @builder_opts);
 
+$SIG{__DIE__} = $orig_death_handler;
+
 print <<"EOF";
 
 Configured for $target.
@@ -2155,6 +2160,19 @@ exit(0);
 # Helpers and utility functions
 #
 
+# Death handler, to print a helpful message in case of failure #######
+#
+sub death_handler {
+    my $build_file = $target{build_file} // "build file";
+    print STDERR <<"_____";
+
+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.
+
+_____
+}
+
 # Configuration file reading #########################################
 
 # Note: All of the helper functions are for lazy evaluation.  They all