Boost logo

Boost-Build :

From: Alexey Pakhunov (alexeypa_at_[hidden])
Date: 2005-09-18 06:34:07

Reece Dunn wrote:
> Cool! I saw optional in the list of types, but was unsure how to use it :).

Well, the only problem - it is not checked in yet. :-)

> feature safe-async-exceptions :
> off # disable "safe" structured exception handling
> on # enable "safe" structured exception handling
> : incidental ;
> Note that it is called "async-exceptions" rather than SEH to be
> consistent with the <async-exceptions> feature.

I'm not sure that I understood it correctly. When the feature is on the
linker will check that all .obj files are compatible with "safeseh" and
will not link if some are not compatible. In other words it does not
affect .obj file or image generation. It simply decides whether an image
can be produced or not. Is it right?

--- Quote ---
/SAFESEH is only valid when linking for x86 targets.

So it should be:

local i386 =
<architecture>x86/<address-model>32 ;

flags msvc LINKFLAGS $(i386)/<safe-async-exceptions>on : /safeseh ;
flags msvc LINKFLAGS $(i386)/<safe-async-exceptions>off : /safeseh:no ;

>>>+actions compile.asm
>>>+ $(.ASM) -nologo -c -coff -Cp -Cx $(ASMFLAGS) -Fo "$(<:W)" "$(>:W)"
>>Where is '.ASM' defined? Normally it is initialized in 'msvc.init' but I
>>don't see this part of code in the patch.
> It's in tools/types/asm.jam; it was added for the gcc.jam assembler
> support (it is picked up by the "import type" statemnent).

tools/types/asm.jam defines ASM - a target type. I asked about .ASM
(with '.' in front of ASM). Take a look at msvc.init:

flags msvc.compile .CC $(condition) : $(prefix)$(compiler) ;
flags msvc.compile .RC $(condition) : $(prefix)$(resource-compiler) ;
flags .LD $(condition) : $(prefix)$(linker) ;
flags msvc.archive .LD $(condition) : $(prefix)$(linker) ;

I believe .ASM should be defined in the same way.

Best regards/Venlig hilsen,
Alexey Pakhunov.


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at