Boost logo

Boost-Build :

Subject: [Boost-build] search with ISFILE to ignore non-files in 'obvious' place
From: Gevorg Voskanyan (v_gevorg_at_[hidden])
Date: 2011-01-17 10:04:55


Folks,

I've been experiencing unnecessary re-builds recently, and tracked down the
issue to this:
Suppose there happens to be a subdirectory named 'string' in the directory bjam
is invoked in, and there are recently modified files in that 'string' directory.
In that case I've seen bjam to update all the targets that directly or
indirectly #include <string> . That happened because bjam failed to find a
string header file in the include search paths it was aware of, and felt back to
the 'obvious' place, where it found a directory named 'string' and bound to it
-- without taking the 'file' parameter of the search() function into
consideration.

Attached is a patch to search.c which makes bjam to avoid binding to non-files
in the 'obvious' place (a fancy name for current directory?) when the 'file'
parameter is true.
Tested under FreeBSD 8.0

Best Regards,
Gevorg



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