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


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?

Best regards,
Alexey.




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