Enable clearing initlocals when running dotnet msbuild.#27345
Conversation
Linker step to clear initlocals was only enabled in Windows builds that use desktop msbuild. dotnet msbuild has a bug in assembly loading: dotnet/msbuild#3016 that was preventing ILLink.CustomSteps from loading by a Type.GetType() call. This PR adds a workaround by appending ILLink.CustomSteps version to the string that is eventually passed to Type.GetType().
|
@dotnet-bot test Linux x64 Release Build |
|
Yay for teamwork on this one! |
|
@dotnet-bot test Linux x64 Release Build |
|
@dotnet-bot test Outerloop Linux x64 Release Build |
|
Some of these Linux failures look legit. In particular, the System.Net.Sockets failures are all in tests related to ReceiveMessageFrom, and ReceiveMessageFrom uses a few stackallocs (that said, it's not obvious to me why those stackalloc'd bytes would need to be cleared, as they're meant to be used as output space, so maybe that's not actually it). For now, I'm going to run the tests again, and then assuming they still fail, let's make the setting of ILLinkClearInitLocals in System.Net.Sockets conditional on it being the Windows build, and I can investigate subsequently this particular failure. |
|
@dotnet-bot test Outerloop Linux x64 Release Build please |
|
@stephentoub What about System.Security.Cryptography.Pkcs.Tests |
|
The System.Diagnostics.Process failures are all https://github.com/dotnet/corefx/issues/27365; unrelated. The System.Runtime.Environment failures are all https://github.com/dotnet/corefx/issues/27366; unrelated. The System.Security.Cryptography.Pkcs failures were just fixed by #27356; unrelated. The System.Net.WebSockets.Client failure isn't known, but I don't believe it's related. It looks like it falls into the larger bucket of failures we know about where we have transient issues connecting to a remote endpoint in the cloud. Still... probably worth re-running just to see if it shows up again. |
|
@dotnet-bot test Outerloop Linux x64 Release Build please please |
…tional on it being the Windows build.
|
I pushed a change to make the setting of ILLinkClearInitLocals in System.Net.Sockets conditional on it being the Windows build. |
|
@dotnet-bot test Outerloop Linux x64 Release Build please please |
|
@stephentoub Are System.Net.Http.Functional failures known? |
|
@dotnet-bot test Linux x64 Release Build |
Yeah, those are https://github.com/dotnet/corefx/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+GetAsync_AllowedSSLVersion_Succeeds. This looks good. Thanks! |
…x#27345) * Enable clearing initlocals when running dotnet msbuild. Linker step to clear initlocals was only enabled in Windows builds that use desktop msbuild. dotnet msbuild has a bug in assembly loading: dotnet/msbuild#3016 that was preventing ILLink.CustomSteps from loading by a Type.GetType() call. This PR adds a workaround by appending ILLink.CustomSteps version to the string that is eventually passed to Type.GetType(). * Make the setting of ILLinkClearInitLocals in System.Net.Sockets conditional on it being the Windows build. Commit migrated from dotnet/corefx@173d9e6
Linker step to clear initlocals was only enabled in Windows builds that use
desktop msbuild. dotnet msbuild has a bug in assembly loading: dotnet/msbuild#3016
that was preventing ILLink.CustomSteps from loading by a Type.GetType() call. This PR adds a workaround by appending ILLink.CustomSteps version to the string that is eventually passed to Type.GetType().
Fixes #27045.
@ericstj @stephentoub PTAL