So that in fact does seem to attempt a cross compile, except that b2 rejects it because its not a legal combo.


I am in C:\try2\boost_1_51_0\libs\context\build\Jamfile.v2 looking at the combos and there isn't a

"alias asm_context_sources" that corresponds to msvc and arm.

I guess I'm not sure what to do here, I'm thinking I should make an entry, but clearly there is some machine code involved in each of these rules and I'm not exactly an assembly programer.




Here is the error message that leads me to believe this is where I should be:




c:\try2\boost_1_51_0>b2.exe toolset=msvc link=shared threading=multi architectur
e=arm

Building the Boost C++ Libraries.


Performing configuration checks

    - 32-bit                   : yes
error: No best alternative for libs/context/build/asm_context_sources
    next alternative: required properties: <abi>aapcs <architecture>arm <binary-
format>elf <toolset>gcc
        not matched
    next alternative: required properties: <abi>aapcs <architecture>arm <binary-
format>elf
        not matched
    next alternative: required properties: <abi>o32 <architecture>mips1 <binary-
format>elf <toolset>gcc
        not matched
    next alternative: required properties: <abi>o32 <architecture>mips1 <binary-
format>elf
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>power <binary-format>elf <toolset>gcc
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>power <binary-format>elf
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>power <binary-format>elf <toolset>gcc
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>power <binary-format>elf
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>x86 <binary-format>elf <toolset>gcc
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>x86 <binary-format>elf <toolset>intel
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>x86 <binary-format>elf
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>x86 <binary-format>mach-o <target-os>darwin <toolset>gcc
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>x86 <binary-format>mach-o <target-os>darwin <toolset>intel
        not matched
    next alternative: required properties: <abi>sysv <address-model>32 <architec
ture>x86 <binary-format>mach-o <target-os>darwin
        not matched
    next alternative: required properties: <abi>ms <address-model>32 <architectu
re>x86 <binary-format>pe <target-os>windows <toolset>intel
        not matched
    next alternative: required properties: <abi>ms <address-model>32 <architectu
re>x86 <binary-format>pe <target-os>windows <toolset>msvc
        not matched
    next alternative: required properties: <abi>ms <address-model>32 <architectu
re>x86 <binary-format>pe <target-os>windows <toolset>gcc
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>x86 <binary-format>elf <toolset>gcc
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>x86 <binary-format>elf <toolset>intel
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>x86 <binary-format>elf
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>x86 <binary-format>mach-o <target-os>darwin <toolset>gcc
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>x86 <binary-format>mach-o <target-os>darwin <toolset>intel
        not matched
    next alternative: required properties: <abi>sysv <address-model>64 <architec
ture>x86 <binary-format>mach-o <target-os>darwin
        not matched
    next alternative: required properties: <abi>ms <address-model>64 <architectu
re>x86 <binary-format>pe <target-os>windows <toolset>intel
        not matched
    next alternative: required properties: <abi>ms <address-model>64 <architectu
re>x86 <binary-format>pe <target-os>windows <toolset>msvc
        not matched
    next alternative: required properties: <abi>ms <address-model>64 <architectu
re>x86 <binary-format>pe <target-os>windows <toolset>gcc
        not matched
    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam



From: Steven Watanabe <watanabesj@gmail.com>
To: Larry E. Ramey <hydrajak@yahoo.com>; Boost.Build developer's and user's list <boost-build@lists.boost.org>
Sent: Monday, October 15, 2012 12:04 PM
Subject: Re: [Boost-build] cross compiling

AMDG

On 10/15/2012 10:53 AM, Larry E. Ramey wrote:
> Do I need to set this before I run boostrap?

No.  bootstrap has nothing to do with this.

> Because when I try to run b2.exe from a msvc (arm) command prompt, it decides that I don't have a win32 cpu-arch (which is correct) but then makes the leap that I clearly must be wanting to use g++ to compile.
>

Try

toolset=msvc?

That should override any automatic toolset detection.

You can also put
using msvc ;
in project-config.jam or user-config.jam

>
> On 10/15/2012 08:55 AM, Larry E. Ramey wrote:
>> I'd like to compile for windows 8 on arm from my windows 7 machine. Can someone point me to the places in the jamfiles I'm going to need to change to clue boost in that it ought to compile arm for win8? I've got all the addons to MSVC that you need, we compile windows 8 arm and apollo all the time here. I just need to get boost clued in that it should change a few flags.
>>
>
> If you just need to add options, then you can
> use cxxflags=... and linkflags=... on the command
> line or use
>
> using msvc : /version/ : /command/ : <cxxflags>... <linkflags>... ;
>
> when initializing the toolset.
>
> If it requires more substantial changes,
> the logic controlling it is in tools/build/v2/tools/msvc.jam
>
> You may also need to pass architecture=arm on the
> command line.
>

In Christ,
Steven Watanabe