-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Build
-
None
-
Fully Compatible
-
Platform 2 04/24/15
Currently, when libdeps links in static archive mode, the build system wraps the entire list of libraries in --start-group and --end-group since there may be cycles in the dependency graph. This is very expensive, since it means that the linker must rescan libraries many times.
However, many of the libraries are not actually part of a cycle, and so do not need to be re-scanned.
The application of --start-group and --end-group should be scoped to actual groups.
This will require that we topsort the library dependencies and groups, and that we have a way of declaring (or detecting) which libraries form groups.
As an additional effect, this will make it easier to identify groups, which we can then aim to eliminate as we work towards achieving SERVER-17783.
- is depended on by
-
SERVER-17783 Library dependency graph should be acyclic
- Closed
- related to
-
SERVER-14605 Order of libraries passed to linker is non-deterministic, causing extraneous rebuilds
- Closed