Uh oh!
There was an error while loading. Please reload this page.
[release/7.0] Disable NativeAOT subset for source-build. - #76206
Conversation
ghost
commented
Sep 26, 2022
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. |
crummel
commented
Sep 26, 2022
ghost
commented
Sep 26, 2022
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.
|
jkotas
commented
Sep 26, 2022
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? |
jkotas
commented
Sep 26, 2022
This dependency is in |
crummel
commented
Sep 28, 2022
You're right, I need to look at this more. I'll get this updated. Thanks! |
crummel
commented
Oct 5, 2022
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. |
jkotas
commented
Oct 5, 2022
@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. |
LakshanF
commented
Oct 6, 2022
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? |
jkotas
commented
Oct 7, 2022
Yes, this looks better. |
crummel
commented
Oct 10, 2022
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. |
carlossanlop
commented
Oct 10, 2022
CI is green. Removed the Ready to merge. |
crummel
commented
Oct 10, 2022
Thanks! |
MichaelSimons
commented
Oct 21, 2022
@crummel - did this get backported to main? |
* Disable NativeAOT subset for source-build. * More surgical fix - remove only the ObjWriter dependency for source-build.
crummel
commented
Oct 24, 2022
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. |
jkotas
commented
Oct 24, 2022
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.