-
Notifications
You must be signed in to change notification settings - Fork 10.5k
SR-8876: Always build libicu on Linux #19860
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
Conversation
@swift-ci test |
Build failed |
Build failed |
This is great! |
@swift-ci test |
Build failed |
Build failed |
Will this change to update-checkout cause it to be cloned on Darwin as well, and if so can we make it only do so on Linux? |
@milseman Currently it will clone on all platforms, I will fix |
@swift-ci test |
Build failed |
Build failed |
@swift-ci test |
Build failed |
Build failed |
@swift-ci test |
Build failed |
Build failed |
cc @millenomi I added the change to namespace the symbols with a |
@shahmishal who could review this? |
As this is adding a new library dependency, this falls under: https://swift.org/contributing/#adding-external-library-dependencies I'll need to go review this for any legal concerns, but this is on me. |
@tkremenek Have you had a chance to look at this? thanks |
@swift-ci test |
Build failed |
Build failed |
Sorry for the delay here; I should have an answer shortly. |
OK, I got legal confirmation that this is OK. There is no problem with statically linking in ICU into the Standard Library in this way; ICU's license clearly allows this. However, we should also include the ICU license in the distribution of Swift when we do this, as the license apples to the ICU data files that will now need to be bundled with the Standard Library. Does this PR do that? |
- Uses version 61.1 from ICU Github unicode-org/icu repository. - Updates mixin_linux_installation to add libicu option. - Use -j when building libicu. - When buiding ICU, use --with-library-suffix=swift This suffixes the ICU symbols with _swift. The libaries are now named libicuucswift, libicui18nswift and libicudataswift. - Add the contents of uconfig.h.prepend into uconfig.h. This avoids passing the renaming CFLAGS to swift and swift-corelibs-foundation. Also resolves: SR-5618: libicu compilation should happen in parallel respecting -j.
- Update --reset-to-remote to support tags. - Add optional platform entry to a repository. This allows specifying which platforms a repo should be checked out on.
- Copy ICU licence into final install.
Ive updated the PR to copy the ICU license into the distribution. It gets copied into |
Please test with the following PRs: @swift-ci please test |
Build failed |
Build failed |
🍾 Congrats @spevans |
@spevans we are seeing this issue with recent development toolchain https://bugs.swift.org/browse/SR-9251. It might be related to this PR changes. |
@shahmishal Do you know if we’re distributing these binaries? If not, can we add them to the toolchain? |
Also, is there any documentation of the installation setup? |
@millenomi Yes we are distributing them on https://swift.org/download/#snapshots |
Let me know if you need help installing the toolchain, you can also find the info on https://swift.org/download/#using-downloads |
@shahmishal I meant whether we were distributing specifically the libicu*swift binaries, which apparently we are:
@spevans Can you investigate? Perhaps the final RPATHs are incorrect? |
@millenomi This should have been fixed by swiftlang/swift-corelibs-foundation#1769 but it is not working correctly. Im taking a look |
Looks like there are 2
And the one in the
so this is setting the
Deleting this extra
I'll see if I can set see what is adding the |
Hopefully this second fix to solve the issue: swiftlang/swift-corelibs-foundation#1776 |
libicu is always built on Linux, because libicu of system is sometimes very old. swiftlang/swift#19860
Uses version 61.1 from ICU Github unicode-org/icu repository.
Updates mixin_linux_installation to add liblic option.
Use -j when building libicu.
Resolves SR-8876.
build-script-impl
updates to make all tests work.Also resolves:
SR-5618: libicu compilation should happen in parallel respecting -j.
Note, ICU 62.1 currently causes a regression with
swift-corelibs-foundation
on Linux which will be looked at separately once this PR is merged.