hercules-390 / hyperion

Hercules 390
Other
246 stars 69 forks source link

Configure does not display error messages indicating what needs to be corrected. #210

Open srorso opened 7 years ago

srorso commented 7 years ago

When run with -q or as part of 1Stop, configure does not display error messages detailing the issue that causes it to terminate without creating files required for make/make install. See, for example:

srorso@solaris113:~/Hercules/i86pc/hyperion$ ../../hyperion/configure -q
configure: WARNING: softfloat_types.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: softfloat_types.h: proceeding with the compiler's result
configure: error: Please correct the above error(s) and try again 

The issue actually diagnosed is revealed, along with lots of other stuff, when -q is left out:

srorso@solaris113:~/Hercules/i86pc/hyperion$ ../../hyperion/configure          
configure: build directory:    /export/home/srorso/Hercules/i86pc/hyperion
[...] (41 lines removed)
configure: WARNING: softfloat_types.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: softfloat_types.h: proceeding with the compiler's result
[...] (424 lines removed)
ERROR: IPv6 support requested but struct in6_ifreq is not available 
configure: error: Please correct the above error(s) and try again 
srorso@solaris113:~/Hercules/i86pc/hyperion$

This issue exists because configure.ac, in many places, uses AC_MSG_NOTIFY or AC_MSG_RESULT followed by hc_error=yes. AC_MSG_NOTIFY and AC_MSG_RESULT are suppressed when -q is used on the command line.

AC_MSG_ERROR is too severe as it terminates configure immediately; there is no option to allow for further error checks. AC_MSG_WARN is an ok choice, as the message is directed to stderr rather than stdout and configure continues. But it will result in the following message(s) when errors are detected:

srorso@solaris113:~/Hercules/i86pc/hyperion$ ../../hyperion/configure -q
configure: WARNING: softfloat_types.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: softfloat_types.h: proceeding with the compiler's result
configure: WARNING: ERROR: IPv6 support requested but struct in6_ifreq is not available 
configure: error: Please correct the above error(s) and try again 
srorso@solaris113:~/Hercules/i86pc/hyperion$ 

"WARNING: ERROR:" in one sentence is not the clearest, but perhaps better than nothing. Anything else, such as replacement of AC_MSG_whatever with echo, for example, risks being non-portable.