-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Fix official build break #100624
Fix official build break #100624
Conversation
#100512 caused an official build break by exposing a latent issue in how we build the managed artifacts. Official builds split managed and native builds for some reason. This is throwing off the heuristic that decides whether to use native AOT's corelib in build. We were always using the native AOT's corelib in x64 and arm64 legs because of the thrown off heuristic. This apparently didn't cause an immediate problem there. It causes a problem on x86 because crossgen2 is a trimmed+r2r+singlefile executable on x86 (and nowhere else) and ILLink execution doesn't like the layouts with `UseNativeAotCoreLib`. Tweak the heuristic to not use native AOT corelib if we're building JIT corelib.
Cc @dotnet/ilc-contrib @dotnet/runtime-infrastructure if anyone is around to sign off. Official builds are broken. Would appreciate if we can merge before someone gets impacted by this. |
Can you please elaborate on what you mean by that? |
Instead of doing a single build.cmd invocation to build stuff, they execute:
Followed by:
It's not clear to me why it's two steps. We just don't want the binlog? (Why?) |
Good question. @jkoritzinsky do you know the answer to that? |
dotnet#100512 caused an official build break by exposing a latent issue in how we build the managed artifacts. Official builds split managed and native builds for some reason. This is throwing off the heuristic that decides whether to use native AOT's corelib in build. We were always using the native AOT's corelib in x64 and arm64 legs because of the thrown off heuristic. This apparently didn't cause an immediate problem there. It causes a problem on x86 because crossgen2 is a trimmed+r2r+singlefile executable on x86 (and nowhere else) and ILLink execution doesn't like the layouts with `UseNativeAotCoreLib`. Tweak the heuristic to not use native AOT corelib if we're building JIT corelib.
#100512 caused an official build break by exposing a latent issue in how we build the managed artifacts. Official builds split managed and native builds for some reason. This is throwing off the heuristic that decides whether to use native AOT's corelib in build.
We were always using the native AOT's corelib in x64 and arm64 legs because of the thrown off heuristic. This apparently didn't cause an immediate problem there.
It causes a problem on x86 because crossgen2 is a trimmed+r2r+singlefile executable on x86 (and nowhere else) and ILLink execution doesn't like the layouts with
UseNativeAotCoreLib
.Tweak the heuristic to not use native AOT corelib if we're building JIT corelib.