From 975b4e7664a00bc4c6aeea0008e2dec16365ccbf Mon Sep 17 00:00:00 2001 From: "Sijie.Sun" Date: Fri, 25 Jul 2025 01:53:49 +0800 Subject: [PATCH] support loongarch (#1146) --- .cargo/config.toml | 4 ++++ .github/workflows/core.yml | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 99b3ae2..1ffdf1d 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -68,6 +68,10 @@ rustflags = ["-C", "target-feature=+crt-static"] linker = "armv7-unknown-linux-musleabi-gcc" rustflags = ["-C", "target-feature=+crt-static"] +[target.loongarch64-unknown-linux-musl] +linker = "loongarch64-unknown-linux-musl-gcc" +rustflags = ["-C", "target-feature=+crt-static"] + [target.arm-unknown-linux-musleabihf] linker = "arm-unknown-linux-musleabihf-gcc" rustflags = [ diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index f111f1d..e015624 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -102,6 +102,10 @@ jobs: OS: ubuntu-22.04 ARTIFACT_NAME: linux-arm + - TARGET: loongarch64-unknown-linux-musl + OS: ubuntu-24.04 + ARTIFACT_NAME: linux-loongarch64 + - TARGET: x86_64-apple-darwin OS: macos-latest ARTIFACT_NAME: macos-x86_64 @@ -167,6 +171,11 @@ jobs: run: | bash ./.github/workflows/install_rust.sh + # loongarch need llvm-18 + if [[ $TARGET =~ ^loongarch.*$ ]]; then + sudo apt-get install -qq llvm-18 clang-18 + export LLVM_CONFIG_PATH=/usr/lib/llvm-18/bin/llvm-config + fi # we set the sysroot when sysroot is a dir # this dir is a soft link generated by install_rust.sh # kcp-sys need this to gen ffi bindings. without this clang may fail to find some libc headers such as bits/libc-header-start.h @@ -246,7 +255,7 @@ jobs: TAG=$GITHUB_SHA fi - if [[ $OS =~ ^ubuntu.*$ && ! $TARGET =~ ^.*freebsd$ ]]; then + if [[ $OS =~ ^ubuntu.*$ && ! $TARGET =~ ^.*freebsd$ && ! $TARGET =~ ^loongarch.*$ ]]; then UPX_VERSION=4.2.4 curl -L https://github.com/upx/upx/releases/download/v${UPX_VERSION}/upx-${UPX_VERSION}-amd64_linux.tar.xz -s | tar xJvf - cp upx-${UPX_VERSION}-amd64_linux/upx .