-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Don't bundle NativeAOT runtime assets in the ILCompiler package #116882
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
base: main
Are you sure you want to change the base?
Conversation
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas |
Does this break "building packages" https://github.com/dotnet/runtime/blob/main/docs/workflow/building/coreclr/nativeaot.md#building-packages workflow for using local builds? |
I need to update those docs to match the changes, but using it should still be possible (if slightly more annoying). |
…store (as otherwise the right version number isn't available until after restore).
Are they bundled today? I don't see it:
|
The problem is cross-compiling where the ILCompiler is on the host platform (eg. osx-arm64) and you are targeting a different platform (eg. ios-arm64). Then you'd get |
This will impact number of places outside this repo that reference specific NAOT version via package reference. For example: https://github.com/dotnet/dotnet/blob/main/src/aspnetcore/eng/tools/GenerateFiles/Directory.Build.targets.in#L60-L62 Is there really no way to get SDK to add the matching |
The main problem is the ILCompiler targets exist in dotnet/runtime. I think I can figure out a way to get this working in dotnet/sdk (introducing a new property that will likely work cleaner anyway). I'll put out a PR to dotnet/sdk after I get back. |
Came back to look at this again, and it looks like we don't need the separate PackageDownload item. I must have added that when iterating on tests and not realized it's not needed. I'll update this PR. I expect the failures here to be fixed when dotnet/dotnet#1268 gets in and flows back. |
With dotnet/sdk#46611, the .NET SDK will now use the "NativeAOT runtime pack" as the "runtime package" when publishing for NativeAOT. It's not as clean as dotnet/sdk#37872, but it has the same effect on our packaging.
Now that the .NET SDK will always look in the "NativeAOT runtime pack" for .NET 10 and newer, we can do two things:
We leave the different properties as-is (ie the split between
aotsdk
andframework
) for usage in our tests.Contributes to #87060