Boost logo

Boost-Build :

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:
> http://article.gmane.org/gmane.comp.lib.boost.build/10305
>
> 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.

>>+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).

- Reece

 


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