[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Recap and patch to deprecating cross-compiler stuff

From: Ralf Corsepius
Subject: Re: Recap and patch to deprecating cross-compiler stuff
Date: Mon, 22 Mar 2004 17:57:36 +0100

On Mon, 2004-03-22 at 16:05, Eric Sunshine wrote:
> On Mon, 22 Mar 2004 14:02:54 +0100, Ralf Corsepius wrote:
> > On Mon, 2004-03-22 at 11:51, Bonzini wrote:
> > > Here is an updated patch that removes the deprecation, but
> > > still changes the other bits.
> > Sorry, Paolo, I am strongly opposed to this patch.
> > AFAIU, you are just about to revert all simplifications on
> > cross-compilation autoconf has eared since 2.5x.
> > At least your changes seem to be completely incompatible to
> > autoconf-2.5x and will definitely break packages. Therefore, if there
> > should be consensus on this patch, it should not be applied to autoconf
> > before 3.0.
> I don't see that.  His changes refine and finalize the clean-up which began  
> with 2.5x.  He is not reverting any behavior, but is instead removing the  
> ugly transitional hacks which were introduced by 2.5x (the hacks in which the 
> manual said "do not rely upon this transitional behavior").
This portion of his patch is OK.

>   Paolo's patch  
> does not introduce incompatibilities which break 2.5x behavior.
I am concerned about 2 aspects of his patches:

* reverting to $cross_compiling instead of using $build, $build_alias,
$host, $host_alias. $build, etc. allow a much fine grained control than
a plain $cross_compiling does.

Think about a toplevel configure script controlling several sub-packages
for n-leaf canadian cross-compilation. Something similar to 
./configure --build=`config.guess` --host=i386-cygwin

Here, $cross_compiling is more or less meaningless or at least
unnecessary, because $build_alias, $host_alias and the $target_aliases
will have to be processed (essentially to be compared in triples) to
compose configure script arguments for sub-package configure scripts.

* Setting $build = $build_alias without any doubt is incompatible:
e.g. $build_alias = i386-linux => $build = i386-pc-linux-gnu
They are different things, being used for different purposes.

However, I also think that autoconf-2.5x's treatment of *_alias is not
correct and little helpful.

Finally, I am uncertain about "configure FOO": IMO, this standard should
be abandoned for the sake of simplicity and the GCS should be changed
accordingly. However, I regard "configure FOO" probably as an historical
artifact, which will rarely be applied by users being accustomed to
cross compilation.

>   The only  
> actual behavioral change is slight.  With his patch, specifying --host tells  
> Autoconf that cross-compilation mode is definitely requested.
Which is right in (sub-) packages supporting 2-leaf cross-compilation.

>  Without the  
> patch, --host tells Autoconf that cross-compilation mode _might_ be  
> requested. This patch makes cross-compilation mode entirely deterministic,  
> which was one of the goals of the transitional changes made in the 2.5x line.
May-be, may-be not. IMO his patch is dangerous and should be carefully
tested with real world packages before going public.

May-be I over-reacted. But I am very cautious on cross-compilation
support in autoconf, because in the past, many (tiny) defects had crept
into autoconf, having caused many tiny incompatibilities which don't
affect the majority of users, however cause gray hair to people using


reply via email to

[Prev in Thread] Current Thread [Next in Thread]