-
Notifications
You must be signed in to change notification settings - Fork 518
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
Xamarin iOS should call monovm_initialize for .NET 6 #10504
Comments
OK, I'll have a look at this. Is |
Already implemented. It's called by the default dotnet host, so if it didn't work we wouldn't function anywhere. |
The main limitations with it right now are:
|
Worth adding, |
We need to call coreclr_initialize/monovm_initialize at startup, so do that. This is a partial implementation, in that we're not setting all the properties that we should, and also the PINVOKE_OVERRIDE callback is not doing everything it should either yet. Ref: xamarin#10504.
…for .NET code. This makes the mono_dllmap_insert function unnecessary for .NET, so remove it. Ref: dotnet/runtime#48110 Ref: dotnet/runtime#43204 Ref: xamarin#10504
…for .NET code. (#10932) This makes the mono_dllmap_insert function unnecessary for .NET, so remove it. Ref: dotnet/runtime#48110 Ref: dotnet/runtime#43204 Ref: #10504
We're adding all the assemblies in the app bundle to TRUSTED_PLATFORM_ASSEMBLIES, so APP_PATHS shouldn't be needed. |
…TORIES runtime property. Fixes xamarin#10504. This adds support to compute the NATIVE_DLL_SEARCH_DIRECTORIES value and pass it to the runtime. It's the last property listed in xamarin#10504, so this fixes that issue. Fixes xamarin#10504
monovm_initialize
is a cleaned-up equivalent tocoreclr_initialize
, which is one of the .NET Core hosting functions inCoreClrHost.h
.Signature: https://github.com/dotnet/runtime/blob/1d9e50cb4735df46d3de0cee5791e97295eaf588/src/mono/mono/mini/mono-private-unstable.h#L30
It needs to be called in net6 embedding projects before the runtime is started. Specifically, what it's doing is:
TRUSTED_PLATFORM_ASSEMBLIES
: Hard-coded list of assemblies, intended to be used for the BCL and fast-path'd in the loading algorithm. They also have some ALC loading implications (default context only).APP_PATHS
: Essentially the same asMONO_PATH
. PreferTRUSTED_PLATFORM_ASSEMBLIES
where possible.NATIVE_DLL_SEARCH_DIRECTORIES
: Extra directories to check when loading native libraries for pinvokes.System.Globalization.Invariant
: Alternative way to set theDOTNET_SYSTEM_GLOBALIZATION_INVARIANT
env var.PINVOKE_OVERRIDE
: First-chance native callback to control P/Invoke resolution, see Static linking of native libs dotnet/runtime#44505The runtime properties are also set in files like
.runtimeconfig.json
, which is parsed in by the default host and passed tocoreclr_initialize
. Mono embedders not using the default host will have to handle this themselves, probably at build time in the case of Xamarin, if they wish to support those files.Applications not calling
monovm_initialize
may result in a runtime error at some undetermined point in the future.Time estimate: 2 weeks
The text was updated successfully, but these errors were encountered: