On 19/03/2024 14.12, Peter Maydell wrote:
On Fri, 8 Mar 2024 at 06:01, Thomas Huth <[email protected]> wrote:If you try to run the configure script on a system without a working C compiler, you get a very misleading error message: ERROR: Unrecognized host OS (uname -s reports 'Linux') We should rather tell the user that we were not able to use the C compiler instead, otherwise they will have a hard time to figure out what was going wrong. Fixes: 264b803721 ("configure: remove compiler sanity check") Signed-off-by: Thomas Huth <[email protected]> --- configure | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 3cd736b139..a036923dee 100755 --- a/configure +++ b/configure @@ -411,7 +411,7 @@ else # Using uname is really broken, but it is just a fallback for architectures # that are going to use TCI anyway cpu=$(uname -m) - echo "WARNING: unrecognized host CPU, proceeding with 'uname -m' output '$cpu'" + echo "WARNING: could not determine host CPU, proceeding with 'uname -m' output '$cpu'" fi # Normalise host CPU name to the values used by Meson cross files and in source @@ -1000,10 +1000,12 @@ if test -z "$ninja"; then fi if test "$host_os" = "bogus"; then - # Now that we know that we're not printing the help and that - # the compiler works (so the results of the check_defines we used - # to identify the OS are reliable), if we didn't recognize the - # host OS we should stop now. + # Now that we know that we're not printing the help, we should stop now + # if we didn't recognize the host OS (or the C compiler is not working). + write_c_skeleton; + if ! compile_object ; then + error_exit "C compiler \"$cc\" is not usable" + fi error_exit "Unrecognized host OS (uname -s reports '$(uname -s)')" fiI think I would prefer as a structure: (1) suppress the "unrecognized host CPU" message if "$host_os" == "bogus" (2) do the "check the C compiler works" test as its own test immediately after we print the help message (and not guarded by testing $host_os) (3) leave the "Unrecognized host OS" check code as it is
Hmm, another idea: Why do we print the --help output that late in the configure script at all? Couldn't we move this earlier, to the place where we already check for the --cc et al. switches? Then we could get rid of the "bogus" stuff completely?
Thomas
