Produce a linux-arm64 build of the shared framework
etherealjoy opened this issue · comments
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
@sdmaclea, could you get libuv.so from distro packages, this is what happens in alpine https://github.com/dotnet/dotnet-docker/blob/02ae576/2.1/aspnetcore-runtime/alpine3.7/amd64/Dockerfile#L5-L6.
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!