Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 22 additions & 17 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,22 +138,26 @@ jobs:
TARGET: powerpc64le-unknown-linux-musl
RUST_MUSL_MAKE_CONFIG: config.mak
TOOLCHAIN: stable
# - IMAGE_TAG: mips-musl
# TARGET: mips-unknown-linux-musl
# RUST_MUSL_MAKE_CONFIG: config.mak
# TOOLCHAIN: stable
# - IMAGE_TAG: mips64-muslabi64
# TARGET: mips64-unknown-linux-muslabi64
# RUST_MUSL_MAKE_CONFIG: config.mak
# TOOLCHAIN: stable
# - IMAGE_TAG: mips64el-muslabi64
# TARGET: mips64el-unknown-linux-muslabi64
# RUST_MUSL_MAKE_CONFIG: config.mak
# TOOLCHAIN: stable
# - IMAGE_TAG: mipsel-musl
# TARGET: mipsel-unknown-linux-musl
# RUST_MUSL_MAKE_CONFIG: config.mak
# TOOLCHAIN: stable
- IMAGE_TAG: mips-musl
TARGET: mips-unknown-linux-musl
RUST_MUSL_MAKE_CONFIG: config.mak
TOOLCHAIN: nightly
- IMAGE_TAG: mips64-openwrt-musl
TARGET: mips64-openwrt-linux-musl
RUST_MUSL_MAKE_CONFIG: config.mak
TOOLCHAIN: nightly
- IMAGE_TAG: mips64-muslabi64
TARGET: mips64-unknown-linux-muslabi64
RUST_MUSL_MAKE_CONFIG: config.mak
TOOLCHAIN: nightly
- IMAGE_TAG: mips64el-muslabi64
TARGET: mips64el-unknown-linux-muslabi64
RUST_MUSL_MAKE_CONFIG: config.mak
TOOLCHAIN: nightly
- IMAGE_TAG: mipsel-musl
TARGET: mipsel-unknown-linux-musl
RUST_MUSL_MAKE_CONFIG: config.mak
TOOLCHAIN: nightly
- IMAGE_TAG: s390x-musl
TARGET: s390x-unknown-linux-musl
RUST_MUSL_MAKE_CONFIG: config.mak
Expand Down Expand Up @@ -213,7 +217,8 @@ jobs:
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/rust-musl-cross:buildcache-${{ matrix.env.IMAGE_TAG }}-${{ matrix.os.arch }}
cache-to: type=registry,ref=ghcr.io/${{ github.repository_owner }}/rust-musl-cross:buildcache-${{ matrix.env.IMAGE_TAG }}-${{ matrix.os.arch }},mode=max
- name: Test Docker cargo build
if: ${{ matrix.os.arch != 'armv7' && !startsWith(matrix.env.TARGET, 'armv5te') && !startsWith(matrix.env.TARGET, 's390x') && !startsWith(matrix.env.TARGET, 'riscv64') }}
# OpenWrt target isn't supported in openssl-src yet
if: ${{ matrix.os.arch != 'armv7' && !startsWith(matrix.env.TARGET, 'armv5te') && !startsWith(matrix.env.TARGET, 's390x') && !startsWith(matrix.env.TARGET, 'riscv64') && !startsWith(matrix.env.TARGET, 'mips64-openwrt') }}
run: |
docker run --rm \
-v "$(pwd)/tests":/home/rust/src \
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ ENV CFLAGS_armv7_unknown_linux_musleabihf='-mfpu=vfpv3-d16'
# Build statically linked binaries for MIPS targets
ENV CARGO_TARGET_MIPS_UNKNOWN_LINUX_MUSL_RUSTFLAGS='-C target-feature=+crt-static'
ENV CARGO_TARGET_MIPSEL_UNKNOWN_LINUX_MUSL_RUSTFLAGS='-C target-feature=+crt-static'
ENV CARGO_TARGET_MIPS64_OPENWRT_LINUX_MUSL_RUSTFLAGS='-C target-feature=+crt-static'
ENV CARGO_TARGET_MIPS64_UNKNOWN_LINUX_MUSLABI64_RUSTFLAGS='-C target-feature=+crt-static'
ENV CARGO_TARGET_MIPS64EL_UNKNOWN_LINUX_MUSLABI64_RUSTFLAGS='-C target-feature=+crt-static'

Expand Down
8 changes: 7 additions & 1 deletion build-std.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
set -e
if [[ "$TOOLCHAIN" = "nightly" && ("$TARGET" =~ ^s390x || "$TARGET" = "powerpc64-unknown-linux-musl") ]]
if [[ "$TOOLCHAIN" = "nightly" && ("$TARGET" =~ ^s390x || "$TARGET" = "powerpc64-unknown-linux-musl" || "$TARGET" =~ ^mips) ]]
then
export CARGO_NET_GIT_FETCH_WITH_CLI=true
export CARGO_UNSTABLE_SPARSE_REGISTRY=true
Expand Down Expand Up @@ -47,6 +47,12 @@ then
else
echo "Warning: GCC C runtime objects not found in $GCC_LIB_DIR, skipping"
fi
# For MIPS targets: create libunwind.a from libgcc.a since musl doesn't ship libunwind
# The unwind symbols are provided by libgcc on these platforms
if [[ "$TARGET" =~ ^mips ]] && [ -f "$GCC_LIB_DIR/libgcc.a" ]; then
echo "Creating libunwind.a from libgcc.a for MIPS target"
cp "$GCC_LIB_DIR/libgcc.a" "/root/.rustup/toolchains/$TOOLCHAIN-$HOST/lib/rustlib/$TARGET/lib/self-contained/libunwind.a"
fi
else
echo "Warning: GCC library directory not found, skipping C runtime objects"
fi
Expand Down
Loading