Skip to content
This repository has been archived by the owner on Apr 20, 2023. It is now read-only.

[Arm64] Enable crossgen #9011

Merged
merged 1 commit into from
Apr 17, 2018
Merged

Conversation

sdmaclea
Copy link

@sdmaclea sdmaclea commented Apr 6, 2018

Enable Arm64 Crossgen

Fixes for arm64 #8998

Depends on dotnet/core-setup#3987 ++

Works if I manually copy crossgen dependencies from core-setup

# Copy x64_arm64 crossgen
 cp -r \
    ../core-setup/packages/transport.runtime.linux-arm64.microsoft.netcore.runtime.coreclr/2.1.0-preview3-26404-06/tools/x64_arm64 \
    ./.nuget/packages/runtime.linux-arm64.microsoft.netcore.app/2.1.0-preview3-26404-01/tools

# Copy x64_arm64 libclrjit.so
cp -r \
    ../core-setup/packages/transport.runtime.linux-arm64.microsoft.netcore.jit/2.1.0-preview3-26404-06/runtimes/x64_arm64 \
    ./.nuget/packages/runtime.linux-arm64.microsoft.netcore.app/2.1.0-preview3-26404-01/runtimes/

@eerhardt
Contains #8896 which I hope/expect will merge before dotnet/core-setup#3987 is ready

@sdmaclea
Copy link
Author

sdmaclea commented Apr 9, 2018

x86 debug was red around time of triggering...

test Windows_NT x86 Debug Build

@sdmaclea
Copy link
Author

sdmaclea commented Apr 9, 2018

@dotnet-bot test Windows_NT x86 Debug Build

Copy link
Member

@eerhardt eerhardt left a comment

Choose a reason for hiding this comment

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

This looks good to me. I assume there needs to be some VSO work to enable the new build leg in the official builds (which only MSFT employees have access to). So I don't think this can be merged until then. @johnbeisner - will you be doing this?

@livarcocc - is this something we want to take for the .NET Core 2.1 release? Should it be integrated into a 2.1.300 branch? Or is this post-2.1 work?

@sdmaclea
Copy link
Author

sdmaclea commented Apr 9, 2018

I think this PR is probably dependent on getting new runtime bits with necessary tools i.e. #9015.

@johnbeisner Said in #8896 (comment) that he set up VSO with triggers off. The arm64 links are still not populated, so it looks like someone needs to establish triggers.

I would like to see this included in 2.1 branch, so that if and when we stabilize the arm64 runtime, we can use the cli.

@sdmaclea
Copy link
Author

sdmaclea commented Apr 9, 2018

@johnbeisner Thanks. I can't see into your link so I don't exactly know what it means. I am hoping it means that the arm64 linux is link in the readme will soon be populated. https://dotnetcli.blob.core.windows.net/dotnet/Sdk/master/dotnet-sdk-latest-linux-arm64.tar.gz

@sdmaclea
Copy link
Author

sdmaclea commented Apr 9, 2018

@@ -257,7 +257,7 @@
</Target>

<Target Name="CrossgenPublishDir"
Condition=" '$(DISABLE_CROSSGEN)' == '' And !$(Architecture.StartsWith('arm')) "
Condition=" '$(DISABLE_CROSSGEN)' == '' And !('$(Architecture)' == 'arm') "

This comment was marked as spam.

@sdmaclea
Copy link
Author

I missed that the core-setup dependencies were updated 2 days ago.

Fixed nit above. Rebased to pick up crosscomponent crossgen from core-setup. Crossgen should work now.

@eerhardt Please trigger 'test ci please'

@sdmaclea
Copy link
Author

@dotnet-bot test Ubuntu16.04 x64 Debug Build
@dotnet-bot test RHEL6 x64 Debug Build

@eerhardt
Copy link
Member

@dotnet-bot test ci please

@sdmaclea
Copy link
Author

sdmaclea commented Apr 15, 2018

Can this be merged? It would be nice to include in 2.1

@eerhardt
Copy link
Member

@livarcocc @johnbeisner - thoughts on merging?

@johnbeisner
Copy link

johnbeisner commented Apr 16, 2018

@eerhardt
Is there a reason that we are not enabling crossgen for Linux arm as well?

@eerhardt
Copy link
Member

Is there a reason that we are not enabling crossgen for Linux arm as well?

Not that I know of. I think @sdmaclea's main concern is linux-arm64 support. But if someone else wants to do linux-arm, that would be great.

@sdmaclea
Copy link
Author

sdmaclea commented Apr 16, 2018

linux-arm is slightly more complicated. The current linux-arm crosscomponent needs to run on x86 not x64. @echesakovMSFT was working on enabling x64_arm crosscomponents.

@eerhardt
Copy link
Member

We do have a docker container that supports linux-arm crossgen. We are using it in the core-setup build.

See https://github.com/dotnet/core-setup/pull/3892/files for the docker tag.

@sdmaclea
Copy link
Author

It was just too complicated for me to figure out how to enable linux-arm. Enabling for linux-arm64 was trivial.

@eerhardt
Copy link
Member

Yep - I think that's totally fine. You are enabling linux-arm64. If someone wants to do linux-arm, that would be great.

@johnbeisner johnbeisner changed the base branch from master to release/2.1.3xx April 16, 2018 19:55
@johnbeisner johnbeisner changed the base branch from release/2.1.3xx to master April 16, 2018 19:55
@johnbeisner johnbeisner changed the base branch from master to release/2.1.3xx April 16, 2018 19:59
@johnbeisner johnbeisner changed the base branch from release/2.1.3xx to master April 16, 2018 20:00
@johnbeisner
Copy link

@sdmaclea
Please rebase your 'PR-ARm64-CROSSGEN' branch to dotnet:release/2.1.3xx
Then we can retarget this PR to dotnet:release/2.1.3xx & I'll submit request for approval.

@sdmaclea
Copy link
Author

@johnbeisner This depends on coresetup 26407-01 or better (#9044 on master) which has not yet merged into dotnet/cli:release/2.1.3xx.

Perhaps this should merge on the master branch first?

Let me know how you want me to proceed.

@sdmaclea
Copy link
Author

Rebased to the current master tip for now pending instructions.

@sdmaclea
Copy link
Author

Looks like this can be rebased on 2.1.3xx after #9076 merges

@johnbeisner
Copy link

@sdmaclea
"Looks like this can be rebased on 2.1.3xx after #9076 merges" - that seems like a reasonable plan.

@johnbeisner
Copy link

@sdmaclea
#9076 has merged; please move forward with the rebase/retarget

@sdmaclea
Copy link
Author

It is already done

@johnbeisner johnbeisner changed the base branch from master to release/2.1.3xx April 17, 2018 16:19
@johnbeisner johnbeisner requested review from MattGertz and a team April 17, 2018 17:26
@johnbeisner johnbeisner added this to the 2.1.3xx milestone Apr 17, 2018
@livarcocc
Copy link

@sdmaclea We have decided to not take this change for 2.1 and instead move it to 2.2. 2.2 is were most of the support for this will come anyways and we felt it was going to be better there.

Could you please re-target to master (again, sorry) and then we can merge this.

@sdmaclea
Copy link
Author

2.2 is were most of the support for this will come anyways

"This" ? linux-arm64?

Could you please re-target to master (again, sorry) and then we can merge this.

Done

@johnbeisner johnbeisner changed the base branch from release/2.1.3xx to master April 17, 2018 20:47
@sdmaclea
Copy link
Author

test Windows_NT_ES x64 Debug Build

@johnbeisner johnbeisner merged commit 8c937a0 into dotnet:master Apr 17, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants