[SERVER-17783] Library dependency graph should be acyclic Created: 29/Mar/15 Updated: 10/Aug/15 Resolved: 10/Aug/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build, Internal Code |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Andrew Morrow (Inactive) | Assignee: | Unassigned |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Our library dependency graph currently contains cycles, but the libdeps facility prohibits declaring cycles. As a result, the cycles are implicit. A cyclic dependency graph makes it impossible to build as shared libraries when requiring that all symbols be resolved at link time. Doing the above would make it possible to detect when undeclared dependencies are introduced, unlike in the static build, where undeclared direct dependencies may be coincidentally satisfied by transitive dependencies. Since we cannot currently detect this, we have many undeclared library dependency edges. |
| Comments |
| Comment by Andrew Morrow (Inactive) [ 10/Aug/15 ] |
|
This work is being done under |