mirror of
https://github.com/boostorg/build.git
synced 2026-02-14 12:42:11 +00:00
acdf27398b97c1e6ef5e4a4a300e0742d74403fe
The bug happens because exec_check replaces the shell inside the command structure, but make1cmds retains a reference to the old shell. The bug appears when all of the following are true: - The action is piecemeal - b2 is running on Windows - SHELL is % - The action contains elements that require a shell - The action is split into multiple commands In particular, this applies for gcc.archive with a large number of object files. Instead of attempting to reuse the same shell, we make a new copy in every iteration of the loop. The shell and target lists are usually short and the cost of copying them is insignificant compared to the other work done by the loop. In addition, the optimization is rarely triggered because piecemeal actions that require splitting are relatively rare.
Boost.Build =========== See the Boost.Build website at https://boostorg.github.io/build/. See the `guidelines for contributing <./CONTRIBUTING.rst>`__.
Description
Languages
C++
73.8%
Python
22.6%
C
1.6%
Batchfile
0.7%
Shell
0.6%
Other
0.6%