Skip to content

Enable --static-swift-stdlib on Linux #2921

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

Merged
merged 1 commit into from
Sep 11, 2020

Conversation

keith
Copy link
Member

@keith keith commented Sep 11, 2020

https://bugs.swift.org/browse/SR-648 has been resolved, so we can enable
this flag on Linux

https://bugs.swift.org/browse/SR-648 has been resolved, so we can enable
this flag on Linux
@dduan
Copy link
Contributor

dduan commented Sep 11, 2020

@swift-ci please smoke test

@neonichu
Copy link
Contributor

LGTM, @drexin would also be good if you could take a look.

Copy link
Contributor

@drexin drexin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@neonichu neonichu merged commit 73609f9 into swiftlang:master Sep 11, 2020
@keith keith deleted the ks/enable--static-stdlib-on-linux branch September 11, 2020 23:44
@keith
Copy link
Member Author

keith commented Sep 11, 2020

Thanks!

@keith
Copy link
Member Author

keith commented Sep 11, 2020

If you think this should go in 5.3 let me know and I can submit a PR

@fabianfett
Copy link

@keith at least I would love to see this in 5.3.

keith added a commit to keith/swift-package-manager that referenced this pull request Sep 12, 2020
https://bugs.swift.org/browse/SR-648 has been resolved, so we can enable
this flag on Linux
@keith
Copy link
Member Author

keith commented Sep 12, 2020

I submitted #2922 in case the maintainers want this

neonichu pushed a commit that referenced this pull request Sep 21, 2020
https://bugs.swift.org/browse/SR-648 has been resolved, so we can enable
this flag on Linux
kateinoigakukun added a commit to kateinoigakukun/swift-package-manager that referenced this pull request Nov 13, 2020
--static-swift-stdlib support on Linux is introduced by swiftlang#2921
but it doesn't work when linking CoreFoundation.

When CoreFoundation is used on a project and a user uses
--static-swift-stdlib, SwiftPM compiled object files without
-static-stdlib and linked them with that option. This mismatch of
compiler option broke swift autolink mechanism.

The object files built without -static-stdlib references
`/lib/swift/CoreFoundation/module.map`, which is intended to be
used for dynamic linking, and the modulemap doesn't have
`link "CoreFoundation"` statement. So the autolink sections in built
object files doesn't have `-lCoreFoundation` and it causes linking
failure.

This patch changes to pass `-static-stdlib` for all compiler jobs if
necessary. This enables to refenrece `/lib/swift_static/CoreFoundation/module.map`
when using `--static-swift-stdlib` and it resolves linking failures.
kateinoigakukun added a commit to kateinoigakukun/swift-package-manager that referenced this pull request Nov 13, 2020
--static-swift-stdlib support on Linux is introduced by swiftlang#2921
but it doesn't work when linking CoreFoundation.

When CoreFoundation is used on a project and a user uses
--static-swift-stdlib, SwiftPM compiled object files without
-static-stdlib and linked them with that option. This mismatch of
compiler option broke swift autolink mechanism.

The object files built without -static-stdlib references
`/lib/swift/CoreFoundation/module.map`, which is intended to be
used for dynamic linking, and the modulemap doesn't have
`link "CoreFoundation"` statement. So the autolink sections in built
object files doesn't have `-lCoreFoundation` and it causes linking
failure.

This patch changes to pass `-static-stdlib` for all compiler jobs if
necessary. This enables to refenrece `/lib/swift_static/CoreFoundation/module.map`
when using `--static-swift-stdlib` and it resolves linking failures.
MaxDesiatov pushed a commit that referenced this pull request Nov 13, 2020
--static-swift-stdlib support on Linux is introduced by #2921
but it doesn't work when linking CoreFoundation.

When CoreFoundation is used on a project and a user uses
--static-swift-stdlib, SwiftPM compiled object files without
-static-stdlib and linked them with that option. This mismatch of
compiler option broke swift autolink mechanism.

The object files built without -static-stdlib references
`/lib/swift/CoreFoundation/module.map`, which is intended to be
used for dynamic linking, and the modulemap doesn't have
`link "CoreFoundation"` statement. So the autolink sections in built
object files doesn't have `-lCoreFoundation` and it causes linking
failure.

This patch changes to pass `-static-stdlib` for all compiler jobs if
necessary. This enables to refenrece `/lib/swift_static/CoreFoundation/module.map`
when using `--static-swift-stdlib` and it resolves linking failures.
federicobucchi pushed a commit to federicobucchi/swift-package-manager that referenced this pull request Jan 6, 2021
--static-swift-stdlib support on Linux is introduced by swiftlang#2921
but it doesn't work when linking CoreFoundation.

When CoreFoundation is used on a project and a user uses
--static-swift-stdlib, SwiftPM compiled object files without
-static-stdlib and linked them with that option. This mismatch of
compiler option broke swift autolink mechanism.

The object files built without -static-stdlib references
`/lib/swift/CoreFoundation/module.map`, which is intended to be
used for dynamic linking, and the modulemap doesn't have
`link "CoreFoundation"` statement. So the autolink sections in built
object files doesn't have `-lCoreFoundation` and it causes linking
failure.

This patch changes to pass `-static-stdlib` for all compiler jobs if
necessary. This enables to refenrece `/lib/swift_static/CoreFoundation/module.map`
when using `--static-swift-stdlib` and it resolves linking failures.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants