From f33346adfba7046780c1d8e825e4d16f94cba98e Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Sun, 26 Nov 2023 10:26:49 +0000 Subject: [PATCH] Add armv7 build --- .cargo/config | 6 +++++- .github/workflows/release.yml | 10 ++++++++-- Makefile | 12 +++++++++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/.cargo/config b/.cargo/config index 0aca9d9..3dc7967 100644 --- a/.cargo/config +++ b/.cargo/config @@ -1,2 +1,6 @@ [target.arm-unknown-linux-gnueabihf] -rustflags = ["-l", "atomic"] \ No newline at end of file +rustflags = ["-l", "atomic"] + +[target.armv7-unknown-linux-gnueabihf] +# Workaround for: https://github.com/rust-lang/compiler-builtins/issues/420 +rustflags = ["-C", "link-arg=-Wl,--allow-multiple-definition"] \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2d22974..f6a46d8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,7 +29,7 @@ jobs: - name: install linux cross compiler run: brew tap messense/macos-cross-toolchains && - brew install x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu arm-unknown-linux-gnueabihf + brew install x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu arm-unknown-linux-gnueabihf armv7-unknown-linux-gnueabihf - name: Make a directory for output artifacts run: @@ -41,12 +41,18 @@ jobs: make release-linux-x86_64 && mv target/x86_64-unknown-linux-gnu/release-github/rqbit target/artifacts/rqbit-linux-static-x86_64 - - name: Build release linux arm32bit binary + - name: Build release linux armv6 binary run: rustup target install arm-unknown-linux-gnueabihf && make release-linux-armv6 && mv target/arm-unknown-linux-gnueabihf/release-github/rqbit target/artifacts/rqbit-linux-static-arm32 + - name: Build release linux armv7 binary + run: + rustup target install armv7-unknown-linux-gnueabihf && + make release-linux-armv7 && + mv target/armv7-unknown-linux-gnueabihf/release-github/rqbit target/artifacts/rqbit-linux-static-arm32 + - name: Build release linux aarch64 binary run: rustup target install aarch64-unknown-linux-gnu && diff --git a/Makefile b/Makefile index 8bad46a..eeb5fc2 100644 --- a/Makefile +++ b/Makefile @@ -75,7 +75,7 @@ release-linux-current-target: target/openssl-linux/$(TARGET)/lib/libssl.a cargo build --profile release-github --target=$(TARGET) @PHONY: release-linux -release-linux: release-linux-x86_64 release-linux-aarch64 release-linux-armv6 +release-linux: release-linux-x86_64 release-linux-aarch64 release-linux-armv6 release-linux-armv7 @PHONY: release-linux-x86_64 release-linux-x86_64: @@ -105,6 +105,16 @@ release-linux-armv6: LDFLAGS=-latomic \ $(MAKE) release-linux-current-target +# armv7-unknown-linux-gnueabihf +@PHONY: release-linux-armv7 +release-linux-armv7: + TARGET=armv7-unknown-linux-gnueabihf \ + TARGET_SNAKE_CASE=armv7_unknown_linux_gnueabihf \ + TARGET_SNAKE_UPPER_CASE=ARMV7_UNKNOWN_LINUX_GNUEABIHF \ + CROSS_COMPILE_PREFIX=armv7-linux-gnueabihf \ + OPENSSL_CONFIGURE_NAME=linux-generic32 \ + $(MAKE) release-linux-current-target + @PHONY: release-all release-all: release-windows release-linux release-macos-universal