$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [context] Don't hard-code the assembler
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2014-04-02 02:13:41
2014-04-02 0:20 GMT+02:00 Steven Watanabe <watanabesj_at_[hidden]>:This is,
of course, why you shouldn't be
> 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