From cdbb5a5a1cb3a8d08815a6c8c2321b3de964cfac Mon Sep 17 00:00:00 2001 From: Alistair Evans Date: Tue, 25 May 2021 18:25:23 +0100 Subject: [PATCH] Adds linux-arm64 binary to the generated nuget package (#1067) Uses cross-compilation to run make; make check uses qemu to execute the tests on virtualised ARM. --- .github/workflows/dotnet-core.yml | 49 +++++++++++++++++++++++++ packaging/dotnet-core/libsodium.pkgproj | 1 + 2 files changed, 50 insertions(+) diff --git a/.github/workflows/dotnet-core.yml b/.github/workflows/dotnet-core.yml index 24f6b606..fe247726 100644 --- a/.github/workflows/dotnet-core.yml +++ b/.github/workflows/dotnet-core.yml @@ -48,6 +48,50 @@ jobs: with: name: build-linux-x64 path: .libsodium-build/lib/libsodium.so + + + build-linux-glibc-arm64: + runs-on: ubuntu-20.04 + steps: + - name: Set up build environment + run: | + export DEBIAN_FRONTEND=noninteractive + + cat <<-EOF | sudo tee /etc/apt/sources.list.d/arm64.list >/dev/null + deb [arch=arm64] http://ports.ubuntu.com/ focal main restricted + deb [arch=arm64] http://ports.ubuntu.com/ focal-updates main restricted + deb [arch=arm64] http://ports.ubuntu.com/ focal universe + deb [arch=arm64] http://ports.ubuntu.com/ focal-updates universe + deb [arch=arm64] http://ports.ubuntu.com/ focal multiverse + deb [arch=arm64] http://ports.ubuntu.com/ focal-updates multiverse + deb [arch=arm64] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse + EOF + + sudo sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list + + sudo dpkg --add-architecture arm64 + + sudo apt-get update && sudo apt-get install -y build-essential qemu-user qemu-user-static gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libstdc++6:arm64 + + - uses: actions/checkout@v1 + - name: configure + run: ./configure --disable-debug --prefix=$PWD/.libsodium-build --host=aarch64-linux-gnu + - name: make + run: make -j $(nproc) + + - name: make check + run: | + make check + + - name: make install + run: make install + + - name: strip + run: aarch64-linux-gnu-strip --strip-all .libsodium-build/lib/libsodium.so + - uses: actions/upload-artifact@v1 + with: + name: build-linux-arm64 + path: .libsodium-build/lib/libsodium.so build-linux-musl: runs-on: ubuntu-latest @@ -96,6 +140,7 @@ jobs: needs: - build-windows - build-linux-glibc + - build-linux-glibc-arm64 - build-linux-musl - build-macos container: @@ -118,6 +163,10 @@ jobs: with: name: build-linux-x64 path: .libsodium-pack/runtimes/linux-x64/native/ + - uses: actions/download-artifact@v1 + with: + name: build-linux-arm64 + path: .libsodium-pack/runtimes/linux-arm64/native/ - uses: actions/download-artifact@v1 with: name: build-linux-musl-x64 diff --git a/packaging/dotnet-core/libsodium.pkgproj b/packaging/dotnet-core/libsodium.pkgproj index fd863c47..d50b5640 100644 --- a/packaging/dotnet-core/libsodium.pkgproj +++ b/packaging/dotnet-core/libsodium.pkgproj @@ -28,6 +28,7 @@ +