-
Notifications
You must be signed in to change notification settings - Fork 1.4k
build: convert package manifest libraries to static #6817
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Adjust the packaging rules to remove the shared library to support migrating to static library forms for this. This should avoid the need to adjust the path when executing the compiled manifest.
@compnerd is this still relevant? |
Yeah, I think that we still want to do this - it avoids the need to alter the path and simplifies trying to debug certain things. |
295b23e
to
296d44c
Compare
@swift-ci please test |
Change `PackageDescription`, `CompilerPluginSupport`, and `PackagePlugin` to static which will enable SPM to avoid having to deal with `Path` alteration to execute the manifest on Windows. This also means that we no longer have to worry about the `DT_RUNPATH`/`LC_RPATH` on Linux and Darwin respectively.
296d44c
to
ec8c989
Compare
@swift-ci please test |
@compnerd I think you need to rebase this before it's ready for review? |
Ankit made these dynamic to help with debugging.
Not sure what scenarios he was referring to. But we should make sure we can still debug SwiftPM and it'll use these libraries from the dev environment as we change them. |
@dschaefer2 I suspect that this was due to the interpreted form of the manifest which has long since changed to the executable form and that avoids any multiply defined symbols. |
Change
PackageDescription
to static which will enable SPM to avoid having to deal withPath
alteration to execute the manifest on Windows. This also means that we no longer have to worry about theDT_RUNPATH
/LC_RPATH
on Linux and Darwin respectively.Partially correct
CompilerPluginSupport
to build statically and no longer install. This is meant to be statically incorporated intoPackageDescription
which currently is not performed. This still raises the issue of public API surface as the static module is not visible externally (i.e. is not re-exported).