Boost logo

Boost-Build :

Subject: [Boost-build] Free features from the command line causes significant increase buld time
From: áÌÅËÓÅÊ îÉËÉÔÉÎ (alleonik_at_[hidden])
Date: 2010-12-02 17:52:34


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

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

I've never made a mistake?

Best regards,

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