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

Produce a linux-arm64 build of the shared framework #1117

Closed
etherealjoy opened this issue Apr 25, 2018 · 13 comments
Closed

Produce a linux-arm64 build of the shared framework #1117

etherealjoy opened this issue Apr 25, 2018 · 13 comments
Milestone

Comments

@etherealjoy
Copy link

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.

@natemcmaster
Copy link
Contributor

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

@Petermarcu
Copy link
Contributor

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?

@natemcmaster
Copy link
Contributor

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.

@sdmaclea
Copy link

sdmaclea commented Apr 26, 2018

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).

@sdmaclea
Copy link

sdmaclea commented Apr 26, 2018

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

@sdmaclea
Copy link

Issue dotnet/cli#9156

@sdmaclea
Copy link

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

@sdmaclea
Copy link

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

@ghost
Copy link

ghost commented Apr 27, 2018

@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.

From aspnet/libuv-build#34

@sdmaclea
Copy link

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

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

@ghost
Copy link

ghost commented Apr 27, 2018

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

@sdmaclea
Copy link

#1037 agreed

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

@natemcmaster
Copy link
Contributor

Resolved with #1399. Thanks @Petermarcu!

@natemcmaster natemcmaster changed the title aspnetcore Linux arm64 build on master Produce a linux-arm64 build of the shared framework Sep 26, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants