From: Reece Dunn (msclrhd_at_[hidden])
Date: 2005-09-18 05:19:49
Alexey Pakhunov wrote:
> Reece Dunn wrote:
>>+feature alignment :
>>+ default # use the default structure alignment
>>+ 1 2 4 8 16 # align structures to n byte boundaries
>>+ : propagated link-incompatible ;
> Recently I posted a patch that helps to avoid using 'default' in the
> features like this. See:
> In this case the default value can be different in different toolsets.
> Instead of using explicit 'default' we declare the feature as optional:
> feature alignment :
> 1 2 4 8 16 # align structures to n byte boundaries
> : propagated link-incompatible optional ;
> To match default value the special condition is used:
> flags borland.compile OPTIONS <alignment> : -a8 ; # IDE default
> Note that there is no value after '<alignment>'.
Cool! I saw optional in the list of types, but was unsure how to use it :).
>>+flags msvc LINKFLAGS <safe-async-exceptions>on : /safeseh ;
>>+flags msvc LINKFLAGS <safe-async-exceptions>off : /safeseh:no ;
> I don't see definition of 'safe-async-exceptions'. Did I miss it?
My bad! I have a load of modifications in a separate branch from the
boost tree to simplify official modifications. When I was pulling this
together, I missed the definition (in msvc.jam):
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.
>>+ $(.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).
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk