-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Closed
Labels
Milestone
Description
.NET 6 added some APIs to CoreCLR to support running the macOS version of Xamarin-macios. Reference:
High level questions about how to approach implementing this
- Is it desired to support this API in NativeAOT?
- Can the work to support the
ObjectiveCMarshal
API be split over multiple PRs. If so, is there a recommended way to turn off the feature for release builds, but still have the CI system test the feature?
Outline of work
-
ObjectiveCMarshal
API : - Testing: some of the tests for this API rely on Remote Executor, which is not currently supported by NativeAOT RemoteExecutor: support single file and NativeAOT arcade#11460
- [NativeAOT] support calling UnmanagedCallersOnly functions before managed main() #77957
- Xamarin-macios side work that is outside the scope of this issue. For a complete list see Enable support for NativeAOT targeting iOS via opt-in feature #80905
- Support for using the aforementioned NativeAOT hosting API.
- Changes to packaging to include the new NativeAOT-specific build of the native components.
- Change build system to account for NativeAOT when linking IL and enabling/disabling features like static registrar
- Changes to the build system to integrate with the final application linking that NativeAOT does.
- Support for retaining enough metadata and marshaling information to allow the runtime to work.
Unimplemented parts of the API
Since the Xamarin side does not use the lastMethod
parameter of the UnhandledExceptionPropagationHandler
delegate, implmenting that is tracked in a separate issue: #80985