Skip to content
This repository was archived by the owner on Oct 18, 2018. It is now read-only.

Produce a Linux arm32 runtime for ASP.NET Core #554

Closed
natemcmaster opened this issue Sep 13, 2017 · 14 comments
Closed

Produce a Linux arm32 runtime for ASP.NET Core #554

natemcmaster opened this issue Sep 13, 2017 · 14 comments
Assignees
Labels
3 - Done cost: M Will take 3 - 5 days to complete enhancement
Milestone

Comments

@natemcmaster
Copy link
Contributor

natemcmaster commented Sep 13, 2017

In 2.0.0, microsoft/dotnet Docker images added support for arm32v7 architectures in Debian Jessie/Stretch. To make ASP.NET Core work well in, we need to produce corresponding Docker images and an ASP.NET Core runtime store.

cref https://github.com/dotnet/core-setup/issues/3122

arm32 runtime announcement: dotnet/announcements#29

@natemcmaster
Copy link
Contributor Author

Potential issues:

  • Does SQLitePCLRaw support for linux-arm? cc @bricelam @ericsink
  • How do we configure a TeamCity agent to build the runtime store on arm32v7? cc @JunTaoLuo
  • Are there any other native components that need to xcompile to linux-arm32?

@ericsink
Copy link

"Does SQLitePCLRaw support for linux-arm?"

Yes, as of version 1.1.8.

@natemcmaster
Copy link
Contributor Author

@ericsink thanks, good to know.

Microsoft.Data.Sqlite 2.0.0 depended on 1.1.7, so we should consider patching this if we want to make SQLite work in a 2.0.x runtime store.

@JunTaoLuo
Copy link
Contributor

Libuv and sqlitepclraw are the only native components in the store now so this is definitely possible. It's going to take a bit of work to set up the agents to build the store. Do we need to build installers for this or will a zip be sufficient?

@natemcmaster
Copy link
Contributor Author

Do we need to build installers for this or will a zip be sufficient?

tar.gz for sure so we can make the docker images. Installers would be great too if it's not too much work. If it is, then we should evaluate this in our triage discussion.

@nzain
Copy link

nzain commented Oct 10, 2017

I want to add that many (most?) "arm developers" can't rely on default installation routines. Generic solutions (zip or tar.gz) and a little custom work are preferred in my oppinion. This is more the linux-way not the windows-way of doing things. For example, my team is neither working on a raspberry PI nor does our device run debian linux. Custom work is required anyways, flexibility is welcome.

@Eilon
Copy link
Member

Eilon commented Oct 10, 2017

@DamianEdwards - do you know if we have ARM32 support planned for ASP.NET/EF Core?

@JensNordenbro
Copy link

JensNordenbro commented Oct 18, 2017

So, when doing this, may I suggest to produce a crossgen:ed store for asp.net core since arm32 is one of the architectures that would benefit the most of not having to spend time JIT:ing IL. (See corefx-crossgen:ed for more of the same).

Also this is needed outside docker-images.

@natemcmaster natemcmaster changed the title Produce a Linux arm32 runtime store for ASP.NET Core Produce a Linux arm32 runtime for ASP.NET Core Feb 16, 2018
@Eilon Eilon added this to the Backlog milestone Mar 2, 2018
@Eilon
Copy link
Member

Eilon commented Mar 2, 2018

Moving to Backlog for now.

@ghost
Copy link

ghost commented Apr 1, 2018

Microsoft.Data.SQLite 2.1.0-preview1-final depends on SQLitePCLRaw.bundle_green (>= 1.1.8).

@Eilon
Copy link
Member

Eilon commented Apr 2, 2018

@muratg - can you get an engineer lined up for this? Per @DamianEdwards , this is needed for 2.1.0.

@muratg muratg assigned muratg and natemcmaster and unassigned muratg Apr 3, 2018
@natemcmaster natemcmaster added the cost: M Will take 3 - 5 days to complete label Apr 5, 2018
@natemcmaster
Copy link
Contributor Author

Our first arm32 builds is available here: https://dotnetcli.blob.core.windows.net/dotnet/aspnetcore/Runtime/2.1.0-preview3-32175/aspnetcore-runtime-2.1.0-preview3-32175-linux-arm.tar.gz. It's not crossgen-ed, but should contain all the native and managed binaries necessary to run basic Microsoft.AspNetCore.App apps.

I'm unable to verify that it actually works on arm32 by just using a macbook due to https://github.com/dotnet/coreclr/issues/17487. Simple apps die on the first HTTP request before a connection can be established. Let me hunt down some real arm32 hardware to see if this works.

@muratg
Copy link

muratg commented Apr 10, 2018

@natemcmaster that's awesome! @anurse has a tower I think.

@natemcmaster
Copy link
Contributor Author

I verified the linux-arm runtime works on a Raspberry Pi 2. There appear to be coreclr issues with QEMU + Docker, so the only way to verify the runtime is on true arm32 hardware.

Closing for now, however, there is some followup work we should consider doing soone. See

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
3 - Done cost: M Will take 3 - 5 days to complete enhancement
Projects
None yet
Development

No branches or pull requests

7 participants