diff --git a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile index f4a23a6666c8a..0b3ff4da34ba0 100644 --- a/ci/docker/loongarch64-unknown-linux-musl/Dockerfile +++ b/ci/docker/loongarch64-unknown-linux-musl/Dockerfile @@ -1,14 +1,16 @@ FROM ubuntu:24.10 RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates curl gcc git libc6-dev make qemu-user xz-utils + ca-certificates curl gcc gcc-14-loongarch64-linux-gnu git libc6-dev \ + make qemu-user xz-utils patch rsync -COPY install-musl-cross.sh / -RUN /install-musl-cross.sh loongarch64-unknown-linux-musl +COPY install-musl.sh / +RUN /install-musl.sh loongarch64 -ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=loongarch64-unknown-linux-musl-gcc \ +ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc \ CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_MUSL_RUNNER="qemu-loongarch64" \ - CC_loongarch64_unknown_linux_musl=loongarch64-unknown-linux-musl-gcc \ + CC_loongarch64_unknown_linux_musl=musl-gcc \ CFLAGS_loongarch64_unknown_linux_musl="-mabi=lp64d -fPIC" \ - QEMU_LD_PREFIX=/loongarch64-unknown-linux-musl/loongarch64-unknown-linux-musl/sysroot \ - PATH=$PATH:/loongarch64-unknown-linux-musl/bin:/rust/bin + RUSTFLAGS="-Ctarget-feature=+crt-static" \ + QEMU_LD_PREFIX=/musl-loongarch64 \ + PATH=$PATH:/musl-loongarch64/bin:/rust/bin diff --git a/ci/install-musl-cross.sh b/ci/install-musl-cross.sh deleted file mode 100755 index 38381dc9bd6bf..0000000000000 --- a/ci/install-musl-cross.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# -# Install musl cross toolchain - -set -ex - -MUSL_CROSS_VER=20241103 -MUSL_CROSS_URL=https://github.com/musl-cross/musl-cross/releases/download/$MUSL_CROSS_VER/$1.tar.xz - -curl -L --retry 5 "$MUSL_CROSS_URL" | tar -xJf - -C / diff --git a/ci/install-musl.sh b/ci/install-musl.sh index 1cf1ec6500cde..416874d916f3e 100755 --- a/ci/install-musl.sh +++ b/ci/install-musl.sh @@ -5,7 +5,15 @@ set -eux -musl_version=1.1.24 +case ${1} in + loongarch64) + musl_version=1.2.5 + ;; + *) + musl_version=1.1.24 + ;; +esac + musl="musl-${musl_version}" # Download, configure, build, and install musl: @@ -53,6 +61,13 @@ case ${1} in ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes make install -j4 ;; + loongarch64) + musl_arch=loongarch64 + kernel_arch=loongarch + CC=loongarch64-linux-gnu-gcc-14 \ + ./configure --prefix="/musl-${musl_arch}" --enable-wrapper=yes + make install -j4 + ;; *) echo "Unknown target arch: \"${1}\"" exit 1