Skip to content

Commit 6b00c01

Browse files
authored
Merge pull request #10 from bodo-run/build-more-distros-linux
Build more distros linux
2 parents bc3e35e + f6ee981 commit 6b00c01

File tree

3 files changed

+42
-1
lines changed

3 files changed

+42
-1
lines changed

.cargo/config.toml

+6
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,10 @@ rustflags = ["-C", "target-cpu=apple-m1"]
1111
rustflags = ["-C", "target-cpu=x86-64-v2"]
1212

1313
[target.aarch64-pc-windows-msvc]
14+
rustflags = ["-C", "target-cpu=generic"]
15+
16+
[target.aarch64-unknown-linux-gnu]
17+
rustflags = ["-C", "target-cpu=generic"]
18+
19+
[target.aarch64-unknown-linux-musl]
1420
rustflags = ["-C", "target-cpu=generic"]

.github/workflows/ci.yml

+20
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,18 @@ jobs:
7777
target: x86_64-unknown-linux-gnu
7878
artifact_name: yek
7979
asset_name: yek-x86_64-unknown-linux-gnu.tar.gz
80+
- os: ubuntu-latest
81+
target: x86_64-unknown-linux-musl
82+
artifact_name: yek
83+
asset_name: yek-x86_64-unknown-linux-musl.tar.gz
84+
- os: ubuntu-latest
85+
target: aarch64-unknown-linux-gnu
86+
artifact_name: yek
87+
asset_name: yek-aarch64-unknown-linux-gnu.tar.gz
88+
- os: ubuntu-latest
89+
target: aarch64-unknown-linux-musl
90+
artifact_name: yek
91+
asset_name: yek-aarch64-unknown-linux-musl.tar.gz
8092
- os: macos-latest
8193
target: x86_64-apple-darwin
8294
artifact_name: yek
@@ -98,7 +110,15 @@ jobs:
98110
with:
99111
cache-on-failure: true
100112
key: ${{ matrix.target }}
113+
- name: Install cross-compilation tools
114+
if: contains(matrix.target, 'aarch64-unknown-linux')
115+
run: |
116+
sudo apt-get update
117+
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
101118
- name: Build target
119+
env:
120+
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
121+
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER: aarch64-linux-gnu-gcc
102122
run: cargo build --release --target ${{ matrix.target }} --locked
103123
- name: Package
104124
shell: bash

scripts/install_yek.sh

+16-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,22 @@ ARCH=$(uname -m)
4040

4141
case "${OS}_${ARCH}" in
4242
Linux_x86_64)
43-
TARGET="x86_64-unknown-linux-gnu"
43+
# Check glibc version
44+
GLIBC_VERSION=$(ldd --version 2>&1 | head -n1 | grep -oP 'GLIBC \K[\d.]+' || echo "")
45+
if [ -z "$GLIBC_VERSION" ] || [ "$(printf '%s\n' "2.31" "$GLIBC_VERSION" | sort -V | head -n1)" = "$GLIBC_VERSION" ]; then
46+
TARGET="x86_64-unknown-linux-musl"
47+
else
48+
TARGET="x86_64-unknown-linux-gnu"
49+
fi
50+
;;
51+
Linux_aarch64)
52+
# Check glibc version for ARM64
53+
GLIBC_VERSION=$(ldd --version 2>&1 | head -n1 | grep -oP 'GLIBC \K[\d.]+' || echo "")
54+
if [ -z "$GLIBC_VERSION" ] || [ "$(printf '%s\n' "2.31" "$GLIBC_VERSION" | sort -V | head -n1)" = "$GLIBC_VERSION" ]; then
55+
TARGET="aarch64-unknown-linux-musl"
56+
else
57+
TARGET="aarch64-unknown-linux-gnu"
58+
fi
4459
;;
4560
Darwin_x86_64)
4661
TARGET="x86_64-apple-darwin"

0 commit comments

Comments
 (0)