Skip to content
This repository was archived by the owner on Dec 16, 2022. It is now read-only.

Commit 7a13fe3

Browse files
author
Paulo Gomes
committed
Add musl tool chain for linux arm64
Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
1 parent d318406 commit 7a13fe3

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

Makefile

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ LIBGIT2_PATH := $(TARGET_DIR)
1212
LIBGIT2_LIB_PATH := $(LIBGIT2_PATH)/lib
1313
LIBGIT2_LIB64_PATH := $(LIBGIT2_PATH)/lib64
1414
LIBGIT2 := $(LIBGIT2_LIB_PATH)/libgit2.a
15+
MUSL-CC =
1516

1617
export CGO_ENABLED=1
1718
export LIBRARY_PATH=$(LIBGIT2_LIB_PATH):$(LIBGIT2_LIB64_PATH)
@@ -27,9 +28,11 @@ endif
2728

2829
ifeq ($(shell uname -s),Linux)
2930
ifneq ($(shell uname -m),x86_64)
30-
export CC=$(shell uname -m)-linux-musl-gcc
31-
export CXX=$(shell uname -m)-linux-musl-g++
32-
export AR=$(shell uname -m)-linux-musl-ar
31+
MUSL-PREFIX=$(REPOSITORY_ROOT)/build/musl/aarch64-linux-musl-native/bin/aarch64-linux-musl
32+
MUSL-CC=$(MUSL-PREFIX)-gcc
33+
export CC=$(MUSL-PREFIX)-gcc
34+
export CXX=$(MUSL-PREFIX)-g++
35+
export AR=$(MUSL-PREFIX)-ar
3336
endif
3437
endif
3538

@@ -67,7 +70,10 @@ builder:
6770
# install qemu emulators
6871
docker run -it --rm --privileged tonistiigi/binfmt --install all
6972

70-
$(LIBGIT2):
73+
$(MUSL-CC):
74+
./hack/download-musl.sh
75+
76+
$(LIBGIT2): $(MUSL-CC)
7177
ifeq ($(shell uname -s),Darwin)
7278
TARGET_DIR=$(TARGET_DIR) BUILD_ROOT_DIR=$(BUILD_ROOT_DIR) \
7379
./hack/static.sh all

hack/download-musl.sh

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env bash
2+
3+
MUSL_AARCH64_FILENAME=aarch64-linux-musl-native.tgz
4+
MUSL_AARCH64_URL="https://more.musl.cc/11.2.1/x86_64-linux-musl/${MUSL_AARCH64_FILENAME}"
5+
MUSL_AARCH64_SHA512=16d544e09845c9dbba50f29e0cb04dd661e17eb63c56acad6a67fd2a78aa7596b792477c7177d3cd56d408a27dc291a90507df882f2b099c0f25511ce08fd3b5
6+
7+
ROOT_DIR="$(git rev-parse --show-toplevel)"
8+
MUSL_DIR="${ROOT_DIR}/build/musl"
9+
10+
if [ ! -f "${MUSL_DIR}/bin" ]; then
11+
TARGET_FILE="${MUSL_DIR}/${MUSL_AARCH64_FILENAME}"
12+
mkdir -p "${MUSL_DIR}"
13+
14+
echo "${MUSL_AARCH64_SHA512} ${TARGET_FILE}"
15+
curl -o "${TARGET_FILE}" -LO "${MUSL_AARCH64_URL}"
16+
if ! echo "${MUSL_AARCH64_SHA512} ${TARGET_FILE}" | sha512sum --check; then
17+
echo "Checksum failed for ${MUSL_AARCH64_FILENAME}."
18+
rm -rf "${MUSL_DIR}"
19+
exit 1
20+
fi
21+
22+
tar xzf "${TARGET_FILE}" -C "${MUSL_DIR}"
23+
rm "${TARGET_FILE}"
24+
fi

0 commit comments

Comments
 (0)