Skip to content

Conversation

@tarekgh
Copy link
Member

@tarekgh tarekgh commented Aug 23, 2021

#57942

.NET runtime is using the ICU library for globalization. We have started using a couple of new APIs (e.g., ubrk_close and ubrk_openRules) that we didn't use before. During runtime we get the pointer to such API dynamically from the ICU library libicui18n which works fine when using whatever installed ICU version on the system. The problem occurs when using app-local version (which the app decides to use ICU version installed from NuGet package). The runtime will not be able to resolve the API against libicui18n because NuGet package libraries export these APIs from different library.
The fix here is to use libicuuc instead of libicui18n which guarantees to have API exports in all environments (system installed ICU or app-local ICU).

@tarekgh tarekgh self-assigned this Aug 23, 2021
@ghost
Copy link

ghost commented Aug 23, 2021

Tagging subscribers to this area: @tarekgh, @safern
See info in area-owners.md if you want to be subscribed.

Issue Details

#57942

.NET runtime is using the ICU library for globalization. We have started using a couple of APIs (e.g., ubrk_close and ubrk_openRules) that we didn't use before. During runtime we get the pointer to such API dynamically from the ICU library libicui18n which works fine when using whatever installed ICU version on the system. The problem occurs when using app-local version (which the app decides to use ICU version installed from NuGet package). The runtime will not be able to resolve the API against libicui18n.
The fix here is to use libicuuc instead of libicui18n which guarantees to have API exports in all environments (system installed ICU or app-local ICU).

Author: tarekgh
Assignees: -
Labels:

area-System.Globalization

Milestone: -

@tarekgh tarekgh added this to the 6.0.0 milestone Aug 23, 2021
@tarekgh
Copy link
Member Author

tarekgh commented Aug 23, 2021

CC @martincostello

@tarekgh
Copy link
Member Author

tarekgh commented Aug 23, 2021

#35930

@tarekgh tarekgh merged commit 2733a88 into dotnet:main Aug 24, 2021
@tarekgh tarekgh deleted the FixLoadinfIcuWithAppLocalVersions branch August 24, 2021 02:32
@tarekgh
Copy link
Member Author

tarekgh commented Aug 24, 2021

/backport to release/6.0-rc1

@github-actions
Copy link
Contributor

Started backporting to release/6.0-rc1: https://github.com/dotnet/runtime/actions/runs/1161031691

@ghost ghost locked as resolved and limited conversation to collaborators Sep 23, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants