-
Notifications
You must be signed in to change notification settings - Fork 127
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
Add support for C++/CLI assemblies #676
Comments
Is there any ETA for fixing this error? If it won't make 3.1 we might need to prepare a known issue post |
The only way how illink would be able to process C++/CLI is if illink was an actual, real, linker (accepting obj files as input). The produced EXE/DLL doesn't have enough information for illink to safely touch anything in it (the real linker already computed various relative offsets and threw away the relocation information for them). The .NET metadata is in the middle of the executable (in the I don't see a path to success with this, unless we accept that the file cannot be touched and just append data to it (i.e. we would bloat the file, keeping a dead copy of the old .NET metadata, with the hope that it will allow us to make non-C++ assemblies smaller). |
Agreed, I think the current plan is to never touch them for the reasons you pointed out, but still analyze them for dependencies (and I don't think we should try to append a metadata copy either). @mateoatr |
Linker now scans C++/CLI assemblies, but it will never modify them. C++/CLI assembly is either removed as a whole, or kept untouched. |
Currently the linker skips C++/CLI assemblies (see #658), because
As a result, dependencies of the C++/CLI assemblies aren't analyzed, requiring workarounds like dotnet/wpf#1387.
This issue tracks improving the linker's support for C++/CLI assemblies. There are a number of routes we could take:
The text was updated successfully, but these errors were encountered: