current glibc vs debian sid
Franz Sirl
Franz.Sirl-kernel@lauterbach.com
Wed Oct 23 03:21:00 GMT 2002
At 09:50 23.10.2002, Akim Demaille wrote:
> >>>>> "Franz" == Franz Sirl <Franz.Sirl-kernel@lauterbach.com> writes:
>
>Franz> Well, besides the coding standards problem, the main problem is
>Franz> that you can't emulate the old syntax with the new syntax and
>Franz> that the emulation of the old syntax isn't working
>Franz> correctly. So either the old syntax compatibility has to be
>Franz> fixed or it has to be rejected completely and the coding
>Franz> standards need updating then.
>
>An incredible amount of time was spent in trying to maintain some
>backward compatibility. Some of us were against it, others wanted it,
>even broken in some subtle ways.
It's not broken in a subtle way, it's heavily broken because the old syntax
always forces a cross-compile setup right now. So removing it completely
and updating the GNU coding standards would have been the better choice
IMHO. Keeping an option, but needlessly changing it's semantics is the
worst possible choice here.
>I'm fine with removing it completely now. Autoconf is full of `FIXME:
>remove when...'. I'm fine with doing this in the release following
>the next one.
>
>
>Franz> Fixing the new syntax requires a documented way to set
>Franz> $host_alias and $target_alias for a native build without
>Franz> triggering a cross-compile (doesn't auto-set $program_prefix,
>Franz> $ac_tool_prefix, etc.).
>
>What's wrong with ./configure --build=foo? This is a native build on
>foo for a native compiler.
But this doesn't set $host_alias or $target_alias and regardless whether
you build native, simple cross or canadian cross, you'll always use
$target_alias in Makefile fragments (GCC as the most prominent example) to
setup pathnames and binary names. But now there is no longer a way to setup
$build_alias==$host_alias==$target_alias without triggering a
cross-compile. This functionality needs to be restored for native builds in
a documented way.
>Franz> What always puzzles me on that issue is what is so difficult
>Franz> about deciding whether we have a cross or native build? After
>Franz> setting $canon_build, $canon_host and $canon_target (I'm using
>Franz> the canon_ prefix here cause the naked $build, $host, $target
>Franz> are documented as deprecated) the decision is simply:
>
>Franz> if "$canon_build$canon_host" ==
>Franz> "$canon_target$canon_target" cross_compile=no else if
>Franz> "$canon_host" == "$canon_target" cross_compile=simple else
>Franz> cross_compile=canadian fi fi
>
>It's not that simple. Some people had argued that for instance
>because of some libraries, something that looked like a native build
>was actually cross. Some people also said that they want to pretend
>they cross-compile using their native compiling suite just to be able
>to exercise their package in cross-compilation.
Well, I think you are sacrificing simplicity of the default path to handle
some obscure setups that would be better suited with a separate switch like
--enable-cross=no/simple/canadian. It's easier to document and easier to
implement.
>in the end, everything amounts to: we do not want any form of educated
>guess from configure: with --host it's cross, without, it's not.
You are kidding, or? Currently autoconf "guesses" that it needs to use
$ac_tool_prefix if $host_alias is set, it "guesses" that it needs to set
$program_prefix if $target_alias is set and all this can happen even though
autoconf happily reports "Checking for crosscompile... no". So effectively
you only changed the preferences of the guesses.
What is wrong with a flag like $cross_compile that is guessed by default
but can be overridden with --enable-cross? And then this flag should be
used throughout in autoconf to key decisions whether to set
$ac_tool_prefix/$program_prefix/etc to some alias or not.
And, looking at the old syntax, it's biggest advantage was that you could
use the same syntax for a native build and for a simple cross build,
greatly simplifying scripts and tools like rpm. Overall it seems like a
regression in usage simplicity, so a change of the coding standards by the
GNU people may be unlikely...
Franz.
More information about the Libc-alpha
mailing list