Skip to content
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

Support cross-architecture compilation in ILC #591

Merged

Conversation

AntonLapounov
Copy link
Member

@AntonLapounov AntonLapounov commented Jan 26, 2021

• Build clr.alljits subset by default and publish resulting JIT libraries with ILC.
• Choose JIT library in ILC dynamically, like we do in crossgen2.
• In official builds, build objwriter library by requesting native.objwriter subset and publish it with ILC.
• If native.objwriter subset was not requested, extract objwriter library from Microsoft.DotNet.ILCompiler package.
• Remove extra backslashes in paths.

Fixes #63 and #218.

@@ -103,7 +103,7 @@ stages:
isOfficialBuild: ${{ variables.isOfficialBuild }}
timeoutInMinutes: 90
testGroup: innerloop
buildArgs: -s nativeaot+libs+nativeaot.packages -c release
buildArgs: -s nativeaot.objwriter+nativeaot+libs+nativeaot.packages -c release
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should watch next couple official builds and verify that they succeed.

<TargetSpec>$(TargetOSComponent)_$(TargetArchitecture)_$(TargetArchitecture)</TargetSpec>
</PropertyGroup>

<!-- On Windows we can re-use PGO-optimized clrjit.dll produced by the build for AOT compilation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure whether it is worth the trouble that it may cause (e.g. with symbols), but since you have done it we can give it a try.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This logic is copied from crossgen2.csproj.

Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you!

@jkotas jkotas merged commit 743a570 into dotnet:feature/NativeAOT Jan 26, 2021
@AntonLapounov AntonLapounov deleted the ILC_CrossArchCompilation branch January 26, 2021 22:29
This was referenced Jan 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants