-
Notifications
You must be signed in to change notification settings - Fork 1.1k
[build] Explicitly link against icudata #3118
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
Closed
Closed
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains 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
This file contains 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
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems wrong. The tests in fact show that this is incorrect - the linking was sufficient. The problem is that the data is not found at runtime. This should be handled via a
DT_RUNPATH
orDT_RPATH
in TestFoundation. This potentially can break the Windows builds. In fact, if nothing else, this doesn't fix the issue - this adds aDT_NEEDED
on the icudata, but that won't help.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my testing, the icudataswift library was not being linked correctly at all in CoreFoundation, and TestFoundation is just an example executable that won't be able to run without the correct path for the data library. The data library seems to be a dependency of i18n and uc and running
ldd libFoundation.so
returns the following:I don't think this is something specific to TestFoundation unless we expect each executable depending on Foundation to pass in
DT_RPATH
. Also, this was tested with other changes committed to the dropping ICU PR that make this work. Yes, this alone does not solve the issue, but this and the other new changes do at least solve the problem for TestFoundation.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If CoreFoundation itself does not rely on libicudata but only indirectly through libicuuc, I think Saleem is right that we shouldn't add that dependency here. What may fix it instead is to add
$ORIGIN
to theDT_RPATH
of the libicu libraries that we build for linux, which is also needed to fix the currently brokenplutil
executable that we ship from this repo.We should've been doing that already and I think it'll fix both that
plutil
issue and this newly uncovered ICU issue.