-
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
Static linking of native libs #44505
Conversation
a7e7d06
to
6c147fd
Compare
89cc99c
to
cca7205
Compare
036ffc1
to
b980e66
Compare
@VSadov Are you planning to also link |
@EgorBo - I was planning to. It would be one of the last libraries I would look at. Not sure how that would work. Thanks for the heads up! |
I also noticed another I think we should do what we do for globalization and call these initialize functions from managed code explicitly rather than relying on the magic |
Considering |
Co-authored-by: Ryan Lucia <[email protected]>
Co-authored-by: Ryan Lucia <[email protected]>
|
I am going to merge this. Thanks to everyone who helped with this PR! |
This PR is a copy of dotnet/runtime#44505 Co-authored-by: VSadov <[email protected]>
Superhost PR follow-up Re: dotnet/runtime#44505 (comment) For the most part a search/replace change.
…#20633) Superhost PR follow-up Re: dotnet/runtime#44505 (comment) For the most part a search/replace change. Co-authored-by: VSadov <[email protected]>
Closes:#41299
Statically linking
libSystem.Globalization.Native
andlibSystem.IO.Compression.Native
/clrcompression
and use overrider mechanism to invoke.libSystem.Globalization.Native
no longer relies on "QCall" mechanism.Instead there is a default/built-in override, which runs right after the host-provided one. Host-provided override has preference since it runs first.
Returning
NULL
is interpreted as "no-match" case.coreclr_initialize
as a property namedPINVOKE_OVERRIDE
. The value is a pointer encoded as a hex-based string value. This is similar toBUNDLE_PROBE
.In this change the following scheme was used:
-- Host overrider dispatches on the name of the library (text match) and defers to one of the embedded libraries, if there is a match.
-- The library dispatches on the native name of the Dll Import and provides a method pointer of there is a match.