Subject: bug#10324: [Platform-testers] Automake 1.11.1b test release

From: Peter Rosin <[email-masked]>
Date: Mon, 09 Jan 2012 16:32:06 +0100

Hi Bruno,

Bruno Haible skrev 2012-01-08 20:45:
> Hi Peter,
> 
> You wrote in
> <https://lists.gnu.org/archive/html/bug-automake/2011-12/msg00055.html>:
>> Oh crap, you are crossing over from Cygwin without telling the build
>> system, right? Or what is your $build if you don't specify --host?
>> I should have known that, given that it was you... I expect weird
>> stuff like this to happen when stunts like that are pulled. Even if
>> *you* engage in such activities, please don't expect anyone else to
>> fix the resulting weirdness.
> 
> configure is able to deduce the build system by itself.
> 
> I built that automake prerelease once with
> 
>   ./configure --host=i586-pc-mingw32 --prefix=/usr/local/msvc
> 
> and once with
> 
>   ./configure --host=i586-pc-mingw32 --build=i686-pc-cygwin --prefix=/usr/local/msvc
> 
> and the results (make and "make check") were exactly the same, except for
> 
>   1) the value of @build_alias@ (empty in the first case, i686-pc-cygwin in the
>      second case). That's normal, and that's why autoconf macros and makefiles
>      generally use @build@, not @build_alias@.
> 
>   2) a spurious (not reproducible) crash of bash during the execution of
>      parallel-am3.test.
> 
> I'm not performing "stunts" when I'm relying on the correct default value
> of @build@.

Those were the differences you noticed, but there are more differences, and
one is the outcome of this test:

	checking whether we are cross compiling... yes/no

it's "no" when only specifying --host=i586-pc-mingw32 on Cygwin and "yes" when
also specifying --build=i686-pc-cygwin.  This difference can result in
weirdness, and I'm not going to waste time figuring out the details.  Your old
("Do not rely on the following", "This is fragile" and "whenever you specify
--host, be sure to specify --build too" [1]) way of invoking configure causes
configure to attempt to determine if you are cross-compiling or not by running
a generated executable.  But that's just a heuristics that happen to fail (with
a "no") in your case, and it's all (potentially) downhill from there.

Have you bothered to read through that section [1] of the Autoconf manual yet?
I pointed you to it once before [2].

Maybe the result of the cross-compile heuristic doesn't make a difference in
the Automake case, and maybe it does.  Maybe some other part of the build
ends up slightly different.  Or not.  Either way, I'm not going to spend time
finding out, and will stick to invoking configure as recommended in the
documentation.

All in all, I definitely think it's a stunt to not specify --build when --host
is specified, especially when the build system is able to execute the code
for the host system as is the case here.

Cheers,
Peter

[1] http://www.gnu.org/software/autoconf/manual/autoconf.html#Hosts-and-Cross-Compilation
[2] http://lists.gnu.org/archive/html/automake/2011-09/msg00024.html