-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
crossgen2 failure in VMR when using VMR stage 2 build scenario #95768
Comments
It looks like this might actually be something RID related. For some reason (still investigating), the crossgen2 targets incorrectly determine that the ReadyToRun TargetOS is |
I believe I found the cause. There's a bug in dotnet/sdk#28380 that flips Windows and Linux. It's only being discovered now because we're bootstrapping with an SDK that has the change. I'll make the change locally and validate. |
Validated that dotnet/sdk#37407 fixes this issue. |
fyi, I think we've used SDKs with this change for bootstrapping before. The bug that is fixed is on a fallback branch for when the rid is not found in the rid graph. I think we're discovering it now because crossgen is now using a rid graph that is not yet updated for the non-portable rid. |
Source build has a required scenario that involves building the VMR once to produce the .NET SDK. And then rebuilding the VMR again using the VMR that was just built. That scenario fails during the build of the runtime repo with the following error:
The full context of that MSBuild call is here:
Note that the output mentions this path, which does not exist on disk:
/repos/dotnet/src/runtime/artifacts/source-build/self/src/artifacts/bin/crossgen2_publish/x64/Release/fedora.38-x64/publish/System.Private.CoreLib.dll
This seems to be related to the changes in #92677. /cc @jkoritzinsky
This does require the changes in dotnet/installer#17929 in order to reach this point of the VMR build.
Repro Steps
git add .
mkdir /repos/bootstrap
./prep.sh
./build.sh --clean-while-building --online
cp artifacts/x64/Release/dotnet-sdk-*.tar.gz /repos/bootstrap
cp artifacts/x64/Release/Private.SourceBuilt.*.tar.gz /repos/bootstrap
git clean -fdx
git checkout -- .
mkdir .dotnet
tar -xzf /repos/bootstrap/dotnet-sdk-*.tar.gz -C .dotnet
./prep.sh --no-artifacts --no-bootstrap --no-sdk
tar -xzf prereqs/packages/archive/Private.SourceBuilt.Prebuilts.*.tar.gz -C prereqs/packages/archive
tar -xzf /repos/bootstrap/Private.SourceBuilt.Artifacts.*.tar.gz -C prereqs/packages/archive
./build.sh --with-packages prereqs/packages/archive --with-sdk .dotnet --online
The text was updated successfully, but these errors were encountered: