fix: specify arm arch version in dist file, add build script support for arm64

This commit is contained in:
Matthew Little
2020-04-07 12:49:58 +02:00
parent ccf2fe615f
commit 3a49a0d92f
4 changed files with 41 additions and 10 deletions

View File

@@ -0,0 +1,16 @@
#!/bin/bash
### This is intended to run within the rust-stretch docker image (or a debian-like system with required dependencies).
cd "$(dirname "$(dirname "$0")")"
apt-get update
apt-get update && apt-get install -y --no-install-recommends \
gcc-aarch64-linux-gnu \
libc6-dev-arm64-cross
rustup target add aarch64-unknown-linux-gnu
CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc \
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
cargo build --target aarch64-unknown-linux-gnu --release --features "aarch64" --no-default-features

View File

@@ -24,14 +24,14 @@ build_sdk () {
fetch_extract_sdk() {
wget -nc "https://github.com/blockstackpbc/osxcross/releases/download/v1/osxcross-e0a1718_xcode-v10.2.1.tar.xz"
echo "Extracting osxcross package..."
tar --checkpoint=1000 -xf "osxcross-e0a1718_xcode-v10.2.1.tar.xz"
tar --checkpoint=25000 -xf "osxcross-e0a1718_xcode-v10.2.1.tar.xz" -C /tmp
}
fetch_extract_sdk
rustup target add x86_64-apple-darwin
PATH="$(pwd)/osxcross/bin:$PATH" \
LD_LIBRARY_PATH="$(pwd)/osxcross/lib:$LD_LIBRARY_PATH" \
PATH="/tmp/osxcross/bin:$PATH" \
LD_LIBRARY_PATH="/tmp/osxcross/lib:$LD_LIBRARY_PATH" \
CC=o64-clang \
CXX=o64-clang++ \
LIBZ_SYS_STATIC=1 \

View File

@@ -36,18 +36,30 @@ build_linux_musl_x64 () {
tar czvf "$clarity_tgz" -C "$src_dir/target/x86_64-unknown-linux-musl/release" clarity-cli
}
### Build and package for Linux-ARMv6 hardfloat
build_linux_arm () {
"$script_path/build-dist-linux-arm.sh"
dist_archive_linux_musl="$dist_dir/blockstack-core-linux-arm.tar.bz2"
### Build and package for Linux-ARMv7 hardfloat
build_linux_armv7 () {
"$script_path/build-dist-linux-armv7.sh"
dist_archive_linux_musl="$dist_dir/blockstack-core-linux-armv7.tar.bz2"
rm -f "$dist_archive_linux_musl"
tar cfvj "$dist_archive_linux_musl" -C "$src_dir/target/armv7-unknown-linux-gnueabihf/release" blockstack-core blockstack-cli clarity-cli
clarity_tgz="$dist_dir/clarity-cli-linux-arm.tar.gz"
clarity_tgz="$dist_dir/clarity-cli-linux-armv7.tar.gz"
rm -f "$clarity_tgz"
tar czvf "$clarity_tgz" -C "$src_dir/target/armv7-unknown-linux-gnueabihf/release" clarity-cli
}
### Build and package for Linux-aarch64 hardfloat
build_linux_aarch64 () {
"$script_path/build-dist-linux-aarch64.sh"
dist_archive_linux_musl="$dist_dir/blockstack-core-linux-aarch64.tar.bz2"
rm -f "$dist_archive_linux_musl"
tar cfvj "$dist_archive_linux_musl" -C "$src_dir/target/aarch64-unknown-linux-gnu/release" blockstack-core blockstack-cli clarity-cli
clarity_tgz="$dist_dir/clarity-cli-linux-aarch64.tar.gz"
rm -f "$clarity_tgz"
tar czvf "$clarity_tgz" -C "$src_dir/target/aarch64-unknown-linux-gnu/release" clarity-cli
}
### Build and package for MacOS-x64
build_mac_x64 () {
"$script_path/build-dist-mac-x64.sh"
@@ -83,7 +95,8 @@ case $DIST_TARGET_FILTER in
case $DIST_TARGET_FILTER in
linux_x64) build_linux_x64 ;;
linux_musl_x64) build_linux_musl_x64 ;;
linux_arm) build_linux_arm ;;
linux_armv7) build_linux_armv7 ;;
linux_aarch64) build_linux_aarch64 ;;
win_x64) build_win_x64 ;;
mac_x64) build_mac_x64 ;;
*)
@@ -95,7 +108,9 @@ case $DIST_TARGET_FILTER in
(*)
build_mac_x64
build_linux_x64
build_linux_arm
build_linux_armv7
## do not build aarch64 by default
# build_linux_aarch64
build_linux_musl_x64
build_win_x64
;;