aspnet / Universe

[Archived] Repo for building the entire ASP.NET and Entity Framework stack. Project moved to https://github.com/aspnet/AspNetCore

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Produce a linux-arm64 build of the shared framework

etherealjoy opened this issue · comments

commented

The aspnetcore arm 32 build is working albeit with some issues, but where is the arm64 build.
The dotnet cli and core-setup already has the build for Linux arm64.
Could you please add a build for this so that we could try and give feedback.

cc @DamianEdwards @Petermarcu - we added initial arm32 support in 2.1. What's the timeframe for arm64?

Nothing official as far as support but we do want to enable the community by having builds available. For ASP.NET, I would imaging this is just a packaging fix? The same bits that run on arm32 should work on arm64 right?

The same bits that run on arm32 should work on arm64 right?

Mostly yes*, as long as we don't start crossgen-ing the arm32 bits (#1061).

* Exceptions - libuv and sqlite.

The same bits that run on arm32 should work on arm64 right?

Cavium Thunder X2 and Qualcomm Centriq only support aarch64, so aarch32/armv7 bits will not work.

The 2.1 linux-arm64 sdk is also missing, libe_sqlite3.so & libuv.so

A year ago the arm64 native libuv.so was included in the linux-x64 dotnet sdk (1.1).

Clarification DOTNET_SDK_VERSION 2.1.300-rc1-008662
The 2.1 linux-arm32 & linux-arm64 sdk are missing, libe_sqlite3.so & libuv.so

Issue dotnet/cli#9156

After building dotnet new console on linux-x64, the following exist.

./sdk/NuGetFallbackFolder/libuv/1.10.0/runtimes/linux-x64/native/libuv.so
./sdk/NuGetFallbackFolder/libuv/1.10.0/runtimes/linux-armel/native/libuv.so
./sdk/NuGetFallbackFolder/libuv/1.10.0/runtimes/linux-arm64/native/libuv.so
./sdk/NuGetFallbackFolder/libuv/1.10.0/runtimes/linux-arm/native/libuv.so
./shared/Microsoft.AspNetCore.All/2.1.0-rc1-30667/libuv.so

Also

./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/linux-x64/native/libe_sqlite3.so
./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/linux-armel/native/libe_sqlite3.so
./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/linux-arm64/native/libe_sqlite3.so
./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/linux-arm/native/libe_sqlite3.so
./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/linux-x86/native/libe_sqlite3.so
./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/alpine-x64/native/libe_sqlite3.so

The arm64 ones are reporting

$ file ./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/linux-arm64/native/libe_sqlite3.so
./sdk/NuGetFallbackFolder/sqlitepclraw.lib.e_sqlite3.linux/1.1.10/runtimes/linux-arm64/native/libe_sqlite3.so: 
ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0d42984b1647b4a40db186ccc321b867c2009342, not stripped
$ file ./sdk/NuGetFallbackFolder/libuv/1.10.0/runtimes/linux-arm64/native/libuv.so
./sdk/NuGetFallbackFolder/libuv/1.10.0/runtimes/linux-arm64/native/libuv.so: 
ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, BuildID[sha1]=83a630378206111aed172cb615a31c1a6eed68e3, not stripped

So they look like they will work on linux-arm64

libuv1 is available on stretch and bionic. So that is feasible.

However there is no aspnetcore-runtime-$ASPNETCORE_VERSION-linux-arm64.tar.gz yet.

I think this kind of work is required to light up the aarch64 support: https://github.com/aspnet/Universe/pull/1037/files.

#1037 agreed

I cannot write PRs for https://github.com/aspnet. So someone else will have to do this piece.

Resolved with #1399. Thanks @Petermarcu!