build: various adjustments for the runtime libraries#874
Open
compnerd wants to merge 1 commit intoswiftlang:mainfrom
Open
build: various adjustments for the runtime libraries#874compnerd wants to merge 1 commit intoswiftlang:mainfrom
compnerd wants to merge 1 commit intoswiftlang:mainfrom
Conversation
Member
Author
|
@swift-ci please test |
Member
Author
|
@swift-ci please test Linux platform |
As per the discussion with @rokhinip, @mikeash, and @compnerd, always build libdispatch and libclosure in shared mode. The rationale for this is the following: If someone does a `-static-stdlib` build of Swift code as a plugin which is hosted in a C/C++ environment, you cannot have two dispatch implementations to run this. You need a single one, and because the host environment may be dynamically linked - you need to dynamically link libdispatch (the C portions). This prepares us to be able to build the rest of the dispatch code (swiftDispatch) both statically and dynamically.
mikeash
approved these changes
Sep 3, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adjust the build in three specific manners:
BUILD_SHARED_LIBSonly permits us to globally control that behaviourAfter a side discussion between @rokhinip, @mikeash, @akmorrison, and myself (@compnerd), we decided that we should only support a dynamically linked libdispatch for the C portion of the runtime. While we have not yet decided on the direction for libclosure, in order to support the build of a static and dynamic libclosure, we pin the libdispatch build to a shared only build rather than just letting the build system control this via the
BUILD_SHARED_LIBSglobal flag.