-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Link System.Globalization.Native into coreclr #6928
Conversation
src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
Outdated
Show resolved
Hide resolved
src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
Outdated
Show resolved
Hide resolved
+1, do the sources compile on windows? last time when I attempted using icu on windows (when sources were still in dotnet/coreclr repo), there were some missing headers ( |
Thanks for the input, @am11. Once I get to the point where we are doing runtime calls (QCalls) instead of regular PInvokes, I will start working on getting it building for windows. Windows 19H1 should have ICU and the necessary headers from my understanding. |
c69b2d6
to
912b441
Compare
I could only find |
CC @jefgen who may help with the comment #6928 (comment) |
src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
Outdated
Show resolved
Hide resolved
src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
Outdated
Show resolved
Hide resolved
src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
Outdated
Show resolved
Hide resolved
Note: If you're limiting yourself to Windows 19H1 and above, then you'll want to use the header There is some history behind the various headers... but the short version is: Just use The super-short history is that upstream ICU made a binary breaking change in version 63.1, which necessitated the creation of mini shim layer over top of the previous binaries ( |
….Native needs to be built first
Build is green and changes are ready 🎉 |
@jefgen, thanks for summarizing. Are the runtime/src/libraries/Native/Unix/System.Globalization.Native/pal_icushim.h Lines 16 to 35 in 6c8a629
|
Thanks for the question! The various The As an aside: FWIW, you could sort of approximate the same thing with the raw/real ICU headers by defining the following values before including any headers: #define U_DISABLE_RENAMING 1
#define U_SHOW_CPLUSPLUS_API 0
#define U_DEFAULT_SHOW_DRAFT 0
#define U_HIDE_DRAFT_API 1
#define U_HIDE_DEPRECATED_API 1
#define U_HIDE_OBSOLETE_API 1
#define U_HIDE_INTERNAL_API 1 |
Will this feature be 19H1+ only? |
Answered my own question. From the linked issue @tarekgh mentions it will be 19H1+. |
And you are going to have an option to bundle the ICU with your app and use that everywhere. |
src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt
Outdated
Show resolved
Hide resolved
Test failure is: #30732 |
Thanks for all your reviews 😄 |
Contributes to: #826
This is the first effort of using ICU on windows. Linking S.G.Native into coreclr.
Next step is to add qcalls and change all the calls into S.G.Native to be runtime calls.
Thanks @jkoritzinsky for your help on plumbing this through 😄