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

[SourceKit] Link with libdispatch & libswiftCore on Linux #3594

Merged
merged 3 commits into from Jul 21, 2016

Conversation

Projects
None yet
7 participants
@jpsim
Contributor

jpsim commented Jul 18, 2016

What's in this pull request?

This PR is exactly #2862, with some minor additional changes to account for the new libdispatch Swift overlay that was added since the original PR and so must now link swiftCore.

Everything else that was discussed in #2862 still applies here.

cc @akyrtzi @briancroom @modocache

All credit here goes to @briancroom @modocache and @norio-nomura, I just re-assembled the commits.

Resolved bug number: (SR-1677)


Before merging this pull request to apple/swift repository:

  • Test pull request on Swift continuous integration.

Triggering Swift CI

The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:

Smoke Testing

Platform Comment
All supported platforms @swift-ci Please smoke test
All supported platforms @swift-ci Please smoke test and merge
OS X platform @swift-ci Please smoke test OS X platform
Linux platform @swift-ci Please smoke test Linux platform

Validation Testing

Platform Comment
All supported platforms @swift-ci Please test
All supported platforms @swift-ci Please test and merge
OS X platform @swift-ci Please test OS X platform
OS X platform @swift-ci Please benchmark
Linux platform @swift-ci Please test Linux platform

Lint Testing

Language Comment
Python @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

briancroom and others added some commits Jun 2, 2016

[SourceKit] Add libdispatch as a dependency for some SourceKit products
sourcekitdInProc, sourcekitd-test, and complete-test need to be explicitly
linked with libdispatch on Linux to build properly.
[SourceKit] Rename Concurrency-Mac.cpp to Concurrency-libdispatch.cpp
This file builds fine as long as libdispatch is available, even on
non-Darwin platforms.
link libswiftCore when building SourceKit on Linux
since libdispatch now includes a Swift overlay
@akyrtzi

This comment has been minimized.

Show comment
Hide comment
@akyrtzi

akyrtzi Jul 19, 2016

Member

@swift-ci Please test

Member

akyrtzi commented Jul 19, 2016

@swift-ci Please test

@jpsim

This comment has been minimized.

Show comment
Hide comment
@jpsim

jpsim Jul 20, 2016

Contributor

@akyrtzi btw, I think you may need to re-trigger CI, since the last request was done during the CI maintenance window, whereas later requests have already started (#3616 (comment)).

Contributor

jpsim commented Jul 20, 2016

@akyrtzi btw, I think you may need to re-trigger CI, since the last request was done during the CI maintenance window, whereas later requests have already started (#3616 (comment)).

@nkcsgexi

This comment has been minimized.

Show comment
Hide comment
@nkcsgexi

nkcsgexi Jul 20, 2016

Contributor

@swift-ci Please test

Contributor

nkcsgexi commented Jul 20, 2016

@swift-ci Please test

@jpsim

This comment has been minimized.

Show comment
Hide comment
@jpsim

jpsim Jul 20, 2016

Contributor

Please join me in a fire dance to get CI to run 😂

Contributor

jpsim commented Jul 20, 2016

Please join me in a fire dance to get CI to run 😂

@modocache

This comment has been minimized.

Show comment
Hide comment
@modocache

modocache Jul 20, 2016

Collaborator

Sounds like fun!

@swift-ci please test

Collaborator

modocache commented Jul 20, 2016

Sounds like fun!

@swift-ci please test

@akyrtzi

This comment has been minimized.

Show comment
Hide comment
@akyrtzi

akyrtzi Jul 21, 2016

Member

OS X failure is unrelated.

Member

akyrtzi commented Jul 21, 2016

OS X failure is unrelated.

@akyrtzi akyrtzi merged commit 488e335 into apple:master Jul 21, 2016

1 of 2 checks passed

Swift Test OS X Platform Build finished.
Details
Swift Test Linux Platform Build finished.
Details

@jpsim jpsim deleted the jpsim:sourcekit-link-libdispatch branch Jul 21, 2016

@jpsim

This comment has been minimized.

Show comment
Hide comment
@jpsim

jpsim Jul 21, 2016

Contributor

Thanks @akyrtzi!

Contributor

jpsim commented Jul 21, 2016

Thanks @akyrtzi!

jpsim added a commit to jpsim/SourceKitten that referenced this pull request Jul 21, 2016

Improve Dockerfile
since apple/swift#3594 & apple/swift#3595 were recently merged, we can build
SourceKit without any patches to Swift! 🎉
@jpsim

This comment has been minimized.

Show comment
Hide comment
@jpsim

jpsim Jul 21, 2016

Contributor

FYI, SourceKit now builds successfully on Linux 🎉 (in two steps):

$ utils/build-script --libdispatch
$ utils/build-script --libdispatch --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE"
Contributor

jpsim commented Jul 21, 2016

FYI, SourceKit now builds successfully on Linux 🎉 (in two steps):

$ utils/build-script --libdispatch
$ utils/build-script --libdispatch --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE"

@mominul mominul referenced this pull request Jul 27, 2016

Closed

[SourceKit] Link with libdispatch on Linux #2862

0 of 1 task complete

@ghost ghost referenced this pull request Aug 8, 2016

Closed

Linux Support #179

@paulofaria

This comment has been minimized.

Show comment
Hide comment
@paulofaria

paulofaria Aug 19, 2016

Contributor

@jpsim what's blocking it to being available by default in the toolchain?

Contributor

paulofaria commented Aug 19, 2016

@jpsim what's blocking it to being available by default in the toolchain?

@jpsim

This comment has been minimized.

Show comment
Hide comment
@jpsim

jpsim Aug 19, 2016

Contributor

Swift needs to be built twice for SourceKit to compile successfully, because libdispatch depends on Swift for its overlay, and SourceKit depends on libdispatch.

There's some build system refactoring needed to build SourceKit as part of a single, normal Swift build. This is being tracked as SR-1676 which is unassigned and up for grabs if you're interested in tackling this @paulofaria.

Contributor

jpsim commented Aug 19, 2016

Swift needs to be built twice for SourceKit to compile successfully, because libdispatch depends on Swift for its overlay, and SourceKit depends on libdispatch.

There's some build system refactoring needed to build SourceKit as part of a single, normal Swift build. This is being tracked as SR-1676 which is unassigned and up for grabs if you're interested in tackling this @paulofaria.

@jhribal

This comment has been minimized.

Show comment
Hide comment

@dtzWill dtzWill referenced this pull request Mar 28, 2017

Merged

swift: init at 3.1 #22098

4 of 11 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment