-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[release/7.0] Disable NativeAOT subset for source-build. #76206
[release/7.0] Disable NativeAOT subset for source-build. #76206
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @hoyosjs Issue DetailsFollow-up to #71853. The source-build understanding is:
I would like to make the minimal change necessary to disable the dependency on llvm-project in runtime without breaking any end-user functionality and this subset seems like it should fit that bill - please let me know if I'm wrong.
|
This is true except for the Microsoft.DotNet.ILCompiler package with build integration that is bundled into the SDK (look for Sdks\Microsoft.DotNet.ILCompiler). The way things are setup today this package has to bundled into the SDK to allow pulling down the NativeAOT compiler. Is the Microsoft.DotNet.ILCompiler package still getting built with the right content with this change? |
This dependency is in |
You're right, I need to look at this more. I'll get this updated. Thanks! |
After discussion with @LakshanF and the source-build team, we will need the ObjWriter bits eventually in 7.0 even if not for NativeAOT, so I'll close this PR. |
@crummel Could you please explain the reasoning more? As far as I know, we should not need ObjWriter in 7.0. I would like to understand why you believe that it is not the case. |
That was a misunderstanding, @crummel and I chatted again and understood we don't need ObjWriter in 7.0 |
I've updated the PR to only remove the ObjWriter bits. I've verified runtime builds in the source-build context with this change and no longer restores the ObjWriter package. I have a build going to test that everything works in the rest of the SDK and will verify NativeAOT publishing from the end-user's perspective after that's done. Does this look like a better change @LakshanF and @jkotas ? Any other testing that seems advisable? |
Yes, this looks better. |
Hi @jkotas, I kicked the CI and everything is green now. I don't have merge permissions so this is good to go whenever you're ready. |
CI is green. Removed the Ready to merge. |
Thanks! |
@crummel - did this get backported to main? |
* Disable NativeAOT subset for source-build. * More surgical fix - remove only the ObjWriter dependency for source-build.
I believe we worked out with @LakshanF and @jkotas that additional pieces of runtime including crossgen2 (which source-build requires) would need ObjWriter/llvm in 8.0 so we didn't want to backport this since we'll have the bits anyway. Unless I misunderstood the 8.0 plans, correct me if I'm wrong please Lakshan and Jan. |
Yes, we will need that for the eventual unified VMR build in .NET 8/9. This is very simple change to port and undo later. If we want to have a source build working in .NET 8 sooner rather than later, it may be worth it to port it. |
Follow-up to #71853.
Tracking issue in source-build is dotnet/source-build#2885.
If merged obsoletes #74505.
The source-build understanding is:
I would like to make the minimal change necessary to disable the dependency on llvm-project in runtime without breaking any end-user functionality and this subset seems like it should fit that bill - please let me know if I'm wrong.