Re: [sr #110213] curl fails with autoconf master

Nick Bowler <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Message-ID <CADyTPEx1ajYNvgJRkqXPNYGOMSb7TqPiX+DRqYP_jnOKgC=gPw@mail.gmail.com>
On 20/03/2020, Ross Burton <[email protected]> wrote:
> URL:
>   <https://savannah.gnu.org/support/?110213>
>
>                  Summary: curl fails with autoconf master
>                  Project: Autoconf
>             Submitted by: rossburton
>             Submitted on: Fri 20 Mar 2020 03:36:28 PM UTC
>                 Category: None
>                 Priority: 5 - Normal
>                 Severity: 3 - Normal
>                   Status: None
>                  Privacy: Public
>              Assigned to: None
>         Originator Email:
>              Open/Closed: Open
>          Discussion Lock: Any
>         Operating System: None
>
>     _______________________________________________________
>
> Details:
>
> Curl cross-compiles fine with autoconf 2.69.  Swapping to autoconf master
> fails.
>
> It fails like this:
> checking if compiler is DEC/Compaq/HP C... no
> checking if compiler is HP-UX C... no
> checking if compiler is IBM C... no
> checking if compiler is Intel C... no
> checking if compiler is clang... no
> checking if compiler is GNU C... yes
> checking if compiler is LCC... no
> checking if compiler is SGI MIPSpro C... no
> checking if compiler is SGI MIPS C... no
> checking if compiler is SunPro C... no
> checking if compiler is Tiny C... no
> checking if compiler is Watcom C... no
> configure: error: in
> `/scratch/poky/work/corei7-64-poky-linux/curl/7.69.0-r0/build':
> configure: error: cannot run test program while cross compiling
>
> Yes, I'm cross-compiling, but the invocation of AC_RUN_IFELSE is guarded
> with
> a $cross_compiling check.

I suspect (without testing) the problem is the presense of
AC_REQUIRE([AC_RUN_IFELSE]) inside of CURL_RUN_IFELSE.

(Line 7292 of curl-functions.m4)

This use of AC_REQUIRE makes no sense at all.  With it there, if it
determines that there has been no prior expansion of AC_RUN_IFELSE in
the configure script, autoconf will output such an expansion at some
mostly-unspecified prior location with all arguments empty.

Such an expansion will cause the error you are seeing because the
action-if-cross-compiling argument is empty.

There are other weird uses if AC_REQUIRE in this file.  I suspect the
author(s) of this script have a serious misunderstanding about what
this macro does.

I imagine that it just happened to work by luck with old autoconf
because older versions of macros you are using happened to expand
AC_RUN_IFELSE themselves and this just happened to prevent any major
problems later in the configure script.

Hope that helps,
  Nick
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.