-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Changes required to use newGenfacadeModel #36126
Conversation
src/System.Runtime.WindowsRuntime/src/System.Runtime.WindowsRuntime.csproj
Outdated
Show resolved
Hide resolved
src/System.Private.Xml/src/System/Xml/IApplicationResourceStreamResolver.cs
Show resolved
Hide resolved
|
Looks like there are some problems with the aliases in manual mscorlib shim. Getting close. |
|
References for manual shims are here: corefx/src/shims/manual/Directory.Build.props Lines 33 to 35 in 15680bb
None have aliases. You'll need to add references with aliases. |
|
@Anipik and I looked at this. It's happening because System.Private.CoreLib had InternalsVisibleTo mscorlib in 2.0, but the GenFacades source isn't considering InternalsVisibleTo when detecting seed preferences (nor did genfacades, but it didn't try to run typeforwards through the compiler). To fix this he can flow assembly name into the task (simple name only to avoid cracking the SNK), then check the seed assembly for an InternalsVisibleTo attribute containing that assembly name. |
|
@ericstj i looked at the failure The public key token for the system.private.corelib(one getting passed in reference paths) is any idea what should we do here ? |
|
7cec is the silverlight key. I wouldn’t expect that to show up at all. You may want to see where that’s coming from by scanning the references of all assemblies being passed to the compiler. I have a tool that does this and can help later tonight. |
src/System.Private.Xml/src/System/Xml/IApplicationResourceStreamResolver.cs
Outdated
Show resolved
Hide resolved
This message should list the assemblies which contain the duplicate type. |
|
You shouldn't be emitting the source file when errors are encountered. This is causing subsequent builds to skip the target which results in different errors upon incremental build. |
|
Ok, so I've found the issue with the UAPAOT build. The problem here is that we have facades that are building against the coerclr System.Private.CoreLib and running against the .NETNative System.Private.CoreLib and the two have different keys. .NETNative corelib is b03f5f7f11d50a3a, CoreCLR is 7cec85d7bea7798e The following are the problem projects: We should add uap-aot configurations to these projects to fix this issue. @jkotas are you aware of this difference? Seems like it could be something we'd want to better share forelimb surface area (eg: a System.Private.CoreLib contract between the runtimes). |
|
It is left over from days when ProjectN CoreLib was very different from CoreCLR CoreLib. IIRC, the different strong name was intentional so that it is harder to mix one and the other by accident. I agree that it would be nice to fix. The workaround you have suggested sounds fine to me. |
Yeah, I almost want to write validation to catch this issue. VerifyClosure ignores pkt today because the coeclr binder does, but maybe I should change that. |
I am working on adding a new pr in arcade to add this as well all other features mentioned in the pr and discussed offline |
|
Sounds good. Maybe we can work together next week to push this change in so we don't have to keep undoing the arcade insertions. |
sure :) |
src/System.Private.Xml/src/System/Xml/IApplicationResourceStreamResolver.cs
Show resolved
Hide resolved
ericstj
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for pushing this feature through!
Thanks for the help :) |
Not a bug. It sounds like you are missing a configuration for |
correcting the new runtime variable updating genfacades version to latest fixes uap build and removes extra seed ype preferences for uapaot
ericstj
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is OK to merge once green. Please be sure we have an issue tracking the cleanup of the manual facades build.
* making corefx compatible with newGenfacadesTask correcting the new runtime variable updating genfacades version to latest fixes uap build and removes extra seed ype preferences for uapaot * adding build configuration, comments and updating genfacadwa version * fixing build for netcoreapaot * removing netcoreappaot build from all configurations build Commit migrated from dotnet/corefx@52206f1
Related PR dotnet/arcade#2221