Boost logo

Boost-Build :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2005-10-03 16:08:29


Alexey Pakhunov wrote:
>>Andre Melnikov has got some code to get x86_amd64 and x86_ia64
>>cross-compilers working (yay!) :)
>
> I definitely need to change my name to something more recongnizable . :-)

:)

>>It would be nice, now that we have <architecture>, <address-model> and
>><instruction-set> to allow using ... ; to be configurable by these, that
>>is, have:
>>
>> using toolset : command * : setup * : properties * ;
>>
>>where properties configure the toolset for some conditions, such as
>><os>cygwin.
>
> Why don't register flags for all allowed conditions? Let's say VC 8.0
> itself compiles for i386, amd64 and ia64. The 'init' rule will
> register flags for all three conditions. This will work and a user
> will be able to select right configuration using <architecture> and
> other features.
>
> Look at: http://article.gmane.org/gmane.comp.lib.boost.build/10594

Great! I understand how this works for VC8, but what about VC7.1 where
the user might want to say:

using msvc : 7.1 ;
using msvc : 7.1 : $(psdk-vc7-cross-compiler) : <architecture>ia64 ;

?

> Even if we allow passing 'condition' to a toolset initialization we
> still will need to be able to register all possible configurations.
> Plus we will need to do additional validation.

This is a problem :(.

>>VC7.1 has supported amd64 and ia64 versions with the PSDK release, so I
>>presume you could do something like:
>
> [skip]
>
> Implementing VC + PSDK configuration is a matter of correct INCLUDE,
> LIB and PATH settings. It can be done in the way that Andrey Melnikov
> offered. And this will not affect the 'msvc.init' rule.

I wasn't referring to platform SDK configuration with vc7.1, but using
the ia64/amd64 cross-compilers that can be found on some versions of the
SDK where the user might want to say use the x86 compiler for normal
builds, but if I am targtting IA64, I want to use the cross-compiler
that comes with my PlatformSDK distribution.

Also, what about the user configuring msvc-6.0/<architecture>arm to use
the embedded VC++ compiler?

>>We would need to add auto-detection/support for these in msvc.jam like
>>with Andre Melnikov's patch so that using msvc : 8.0 ; would register
>>all cross-compiler variants.
>
> This will be done automatically if the msvc.init rule will register
> all configurations allowed for the given version of compiler.

Agreed.

>>Also, the architecture feature needs to be extended to include arm and
>>sh. MIPS is already covered and I am not yet sure how the cex86 compiler
>>would be configured.
>
> We can register different assembler names depending for each condition.

Sure. The x86_cex86 cross-compiler is still an issue because it cannot
currently be detected without help. The x86_mips compiler can be covered
by <architecture>mips*. x86_arm and x86_sh would require new additions
to the architecture feature in order to get the condition working.

x86_cex86 could be supported by adding a cex86 architecture value, like
what would be needed for arm and sh, e.g. <architecture>cex86 or
<architecture>x86/<instruction-set>cex86.

> IMO: we can implement this feature but the same functionality can be
> implemented without it using that same amount of work.

I don't quite follow. Could you explain?

Thanks,
Reece

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk