-
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
Runtime packs don't use trimmed binaries #48655
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @safern, @ViktorHofer Issue DetailsThe runtime packs build as part of libraries build don't use output produced by ILLinker even if it's run during the build. The ILLink produces fully trimmed runtime packs into
|
I don't know about if the shared framework packages contain trimmed or untrimmed assets but we don't even test on crossgend bits today in libraries. The required work to fix the overall issue is to depend on the Microsoft.NETCore.App bundle that lives in the installer partition instead of depending on the fake shared framework that we currently generated in libraries. That will make sure that we test with the "exact" same bits that flow into dotnet/sdk. |
Isn't this the same discussion that was rejected in #31712? The libraries in the runtime packs get ILLink run on them in isolation as part of their build and that output is placed in the runtimepack. We discard the output of ILLink that sees the complete shared framework because of the reasons outlined in #31712 (comment) - the effect this has on the inner dev loop. cc @stephentoub |
This was also discussed in #487. As @ViktorHofer said, the libraries tests do not run against shipping bits today that is a glaring test hole. The inner dev loop can continue to use non-trimmed non-crossgened bits like it does today. #31712 (comment) . I understand that there are concerns some types of failures may not get detected in the inner dev loop if we do this; but I do not see any other better solution to fix the test hole. |
Isn't that quite wasteful? We run the whole trimming process on runtime pack and generate 160 libraries for 40 or so runtime packs to achieve what exactly? Does this also mean we cannot use linker in libraries build to produce platform or architecture-specific assemblies? |
We get the ILLink warnings from it and baseline the existing warnings. See #38033. We are then burning down the warnings in #45623.
For the libraries outside of System.Private.CoreLib, this is correct. That was also discussed in #31712. |
The runtime packs build as part of libraries build don't use output produced by ILLinker even if it's run during the build. The ILLink produces fully trimmed runtime packs into
/artifacts/bin/ILLinkTrimAssembly/{version}/trimmed-runtimepack/
. This is not optimal for few reasons@ViktorHofer @eerhardt
The text was updated successfully, but these errors were encountered: