2014-04-02 0:20 GMT+02:00 Steven Watanabe
writing assembler in the first place...
but C++ doesn't provide the required features (for instance swapping the stack pointer) - I'm forced to use assembler. some new compilers (MSVC for instance) do not support inline-assembler :^/
I think I'd prefer it if Boost.Context just gave an error if I use a toolset that it doesn't support, instead of trying (and failing badly) to switch silently to a different toolset.
it does not switch to another toolset - boost.context contains assembler code only and the convention is: - on i386-Windows its uses MASM - on x86_64-Windows its uses MASM64 - on arm-Windows armasm - on all other platforms GNU as
On Windows MASM is used to compile boost.context - it was shipped with MS Visual Studio an at some point MS decided to move it from the MS Visual Studio to the MS WDK.
It's still installed along with Visual Studio.
masm64 too?
- With <toolset>msvc, the assembler can't be found automatically, even though Boost.Build already knows how to find it.
hmm - it works for me - 'b2 toolset=msvc-10.0' builds boost.context on Win32
- If the assembler has a name other then as, it cannot be used, even if it would actually work. This is especially likely to be a problem for cross compiling.
what would be a solution? If I would let the toolset choose the assembler tool I would be forced to support the different syntax of those assembler tools (which would be a lot if you know how many assemblers are available). MASM and GNU as are the default assemblers an the related platforms