On 17/06/2015 18:30, Oliver Kowalke wrote:
- Compiler does not care much, it just uses the default one - Boost.Build does not care either, since all ARM alternatives in boost.context have the same ABI
What am I missing
boost.context has to compile assemblerfiles/code. For this purpose it has asm files for combinations of architecture, abi, binary-format and address-model. The Jamfile of boost.context has rules for selecting the correct ASM file. In the case of cross compiling the rules get the wrong data. Theuser has to overwrite abi and the other properties guessed by context's Jamfile.
I think that Vladimir's suggestion is that: 1. The initial defaults for all properties should be auto-detected from the host OS as normal. 2. Specifying "architecture=arm" explicitly, also changes the default for "abi" to "aapcs" (but it can still be overruled by the command line), along with any other properties for which knowing the architecture is sufficient to overrule other auto-detection. (Or, for another way to look at it: specifying the architecture makes it assume a certain abi without having to do any auto-detection, unless otherwise specified.) I don't how easy it would be to convince B2 to do such a thing, however, or whether it's sufficiently worthwhile. :)