selection or target tools

Paolo Bonzini paolo.bonzini@lu.unisi.ch
Fri Dec 23 12:18:00 GMT 2005


> One appropriate default for --with-build-tools could be the same as
> the defaults for --program-transform-name.  A default native build
> would use 'as', a default cross build would use '$target-as'.  Most
> people using --program-prefix would probably also pass the same value
> to --with-build-tools.

So --with-build-tools would be a *prefix* and not a path in which to 
find it?

I have a prototype patch that follows this logic:

1) if not a Canadian cross and the appropriate directory is being built 
as a host module, use it.  So combined trees are not affected, of 
course, by the patch.

2) look into the --with-build-tools path, for both a Canadian cross and 
a native build.  This defaults to $exec_prefix/$target/bin, so the 
default build tools (used in autoconf tests and by the being-built GCC) 
would be, if found, something like 
/usr/local/i686-pc-linux-gnu/bin/{ar,as,ld,...}.  These would be "naked" 
names, not $target-prefixed, even when building a cross (because they 
are in a directory named after the target).

3) in a native build we try to use the host tool

4) if no host tool is found, we look for a pre-installed tool.  The 
macro NCN_STRICT_CHECK_TARGET_TOOLS imposes $target-prefixed names for 
cross builds, while on a native build a "naked" name would be okay as well.

Step 2 is new.  The previous logic covers step 1, 3, 4.

I believe that this is covering Jan's use case.  If it covers Dan's as 
well, I'm going to post the patch in a few hours or else in the new year 
(in the meanwhile, there are other toplevel patches to review, i.e. 
parts 2/4 and 3/4)...

We also have the problem of backwards compatibility.  I can try to work 
out a patch to implement --with-build-tools in 4.0 and 4.1 (with the new 
logic kicking in only if the option is specified, of course).

Paolo



More information about the Gcc mailing list