|
Boost-Build : |
Subject: Re: [Boost-build] Free features from the command line causes significant increase buld time
From: Vladimir Prus (ghost_at_[hidden])
Date: 2012-10-06 16:17:09
On 03.12.2010 01:52, ÐлекÑей ÐикиÑин wrote:
> Hello!
>
> Bear out comments of thread "bjam define=anything produces a core dump".
>
> In file targets.jam in method "generate" of class basic-target writes next:
>
>
> if ! $(self.generated.$(property-set))
> {
> # Apply free features from the command line. If user said
> # define=FOO
> # he most likely wants this define to be set for all compiles.
> property-set = [ $(property-set).refine
> [ build-system.command-line-free-features ] ] ;
> local rproperties = [ targets.common-properties $(property-set)
> $(self.requirements) ] ;
> ...
>
> Here "If" always check property-set without free features from command
> line. But below variable "self.generated.$(property-set)" set to new
> property-set (with free fatures) and thus expression under "if" always
> true. That causes exponential growth of building time and memory
> usage.
>
> I think the addition of free features should be done before "if !
> $(self.generated.$(property-set))" and, in general, under this "if"
> property-set cannot be change. I attached a patch with the proposed
> changes.
>
> I've never made a mistake?
Alexey,
thanks for the patch, applied in r80892.
- Volodya
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