[SERVER-48291] Avoid including a static copy of the GCC and C++ runtimes in every shared library Created: 19/May/20 Updated: 07/Nov/23 Resolved: 09/Aug/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Andrew Morrow (Inactive) | Assignee: | Andrew Morrow (Inactive) |
| Resolution: | Incomplete | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||
| Sprint: | Dev Platform 2020-08-24, Dev Platform 2020-09-07, Dev Platform 2020-09-21, Dev Platform 2020-10-05, Dev Platform 2020-10-19, Dev Platform 2020-11-02, Dev Platform 2020-11-16, Dev Platform 2020-11-30, Dev Platform 2020-12-14, Dev Platform 2021-05-17, Dev Platform 2021-05-31, Dev Platform 2021-06-14, Dev Platform 2021-07-12, Dev Platform 2021-07-26, Dev Platform 2021-08-09, Dev Platform 2021-08-23 | ||||||||||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||||||||||
| Linked BF Score: | 45 | ||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
When building with --link-model=dynamic using the mongodb toolchain, every shared library is linked against a static copy of the GCC and C++ runtimes. This bloats the build, slows startup, and is just generally undesirable. We should find a way to avoid needing every shared library to embed a static copy of the GCC and runtimes when using the toolchain. |
| Comments |
| Comment by Githook User [ 28/Jul/21 ] |
|
Author: {'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}Message: (cherry picked from commit 0c1e060e7e87a32673e9a6b0311663aa4875544b) |
| Comment by Githook User [ 28/Jul/21 ] |
|
Author: {'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}Message: (cherry picked from commit 787d5a2aee7d69572345e0b33447a8b2c92ea982) |
| Comment by Githook User [ 27/Jul/21 ] |
|
Author: {'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}Message: |
| Comment by Githook User [ 26/Jul/21 ] |
|
Author: {'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}Message: |
| Comment by Githook User [ 20/Jul/21 ] |
|
Author: {'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}Message: This was inadvertently lumped in with the other ShimLibrary (cherry picked from commit 1c41fa28a3ce3a5e661e951aa0d435de6815797d) |
| Comment by Githook User [ 06/Jul/21 ] |
|
Author: {'name': 'Andrew Morrow', 'email': 'acm@mongodb.com', 'username': 'acmorrow'}Message: This was inadvertently lumped in with the other ShimLibrary |
| Comment by Githook User [ 09/Dec/20 ] |
|
Author: {'name': 'Ryan Egesdahl', 'email': 'ryan.egesdahl@mongodb.com', 'username': 'deriamis'}Message: Prior to this point, a dynamic build might have resulted in some runtime The effect of having runtime libraries statically linked was that The default behavior remains as it was before, and dynamic runtime must |
| Comment by Githook User [ 26/Nov/20 ] |
|
Author: {'name': 'Kaloian Manassiev', 'email': 'kaloian.manassiev@mongodb.com', 'username': 'kaloianm'}Message: Revert " This reverts commit 2a0e76082be0f2aca82830bcaf91f6d737b842ac. |
| Comment by Githook User [ 26/Nov/20 ] |
|
Author: {'name': 'Ryan Egesdahl', 'email': 'ryan.egesdahl@mongodb.com', 'username': 'deriamis'}Message: Prior to this point, a dynamic build might have resulted in some runtime The effect of having runtime libraries statically linked was that The default behavior on Linux is that dynamic builds will detect whether |
| Comment by Githook User [ 26/Nov/20 ] |
|
Author: {'name': 'Ryan Egesdahl', 'email': 'ryan.egesdahl@mongodb.com', 'username': 'deriamis'}Message: We sometimes have situations where a dependency applies at a large What we now do instead is to define LIBDEPS_GLOBAL on the *build |
| Comment by Githook User [ 26/Nov/20 ] |
|
Author: {'name': 'Ryan Egesdahl', 'email': 'ryan.egesdahl@mongodb.com', 'username': 'deriamis'}Message: |