This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Partial autoconf transition thoughts
- From: Nathanael Nerode <neroden at twcny dot rr dot com>
- To: gcc at gcc dot gnu dot org, gdb at sources dot redhat dot com, binutils at sources dot redhat dot com, aoliva at redhat dot com
- Date: Mon, 9 Jun 2003 20:40:25 -0400
- Subject: Re: Partial autoconf transition thoughts
Alexandre Oliva said:
>On Jun 9, 2003, Daniel Jacobowitz <drow@mvista.com> wrote:
>
>> 4. Specify the same thing for both
>> 2.13: Both will be overridden; test $CC for cross mode.
>> 2.57: Both will be overridden, will build natively.
>
>Except that building natively is deprecated, and autoconf people have
>already pushed for removing this alternative. We probably don't want
Whaaaat? This seems like a rather dumb idea with no serious benefit.
--
Let's look at this another way. What are the *differences* between a
build=host compilation and a build!=host compilation?
1. Certain tools used while building have different names.
I have effectively isolated this issue into macros in config/acx.m4.
They can be improved if necessary, but they're already quite clever.
More importantly, *we* have control over these and can make them decide
based on *our* choice of when it's appropriate.
2. Testing can be done on the build machine.
Not a configuration issue!
3. Certain headers are to be found in a different place.
This is a legitimate difference, which might induce a desire for
'cross-building' when build=host, but it can be specified explicitly in
other ways already, I believe.
4. Certain libraries are found in different places. In the case of
static linking, this is the same as the above. In the case of dynamic
linking, this should be manually overridable (and it seems to be
moderately hit-and-miss in the cross case anyway, given
inconsistent dynamic library naming and locating schemes).
I can think of no other differences.
I proceed on the principle that there are no real, fundamental
differences between a native configuration and a cross configuration,
and this generally creates the cleanest configury code.
>What configure arguments? Did you pass i386-linux in the command
>line? Maybe one of --build or --host? The worst case to handle IMO
>is that of passing --build, since then autoconf 2.13 directories will
>guess --host from config.guess, whereas autoconf 2.57 will default
>host to build. If they're different, we get an inconsistent build
>across directories. That's why I think we should resolve the flags in
>the top level, and decide what to pass to each sub-directory.
Absolutely. We're already passing a complete set down to the 'target'
directories and to the 'build' directories. I think we should also pass
a complete set down to the 'host' directories, and they should be bright
enough to understand that if build=host, build=host. (Regardless of
what some autoconf people may be advocating.)
--Nathanael