From 96fc38fb5ad3829c56a38693e776e0d432084196 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Thu, 11 Sep 2025 22:11:05 -0400 Subject: [PATCH] adding risc ci --- .github/workflows/risc.yml | 29 +++++++++++++++++++++ cmake/toolchains-ci/riscv64-linux-gnu.cmake | 4 +++ 2 files changed, 33 insertions(+) create mode 100644 .github/workflows/risc.yml create mode 100644 cmake/toolchains-ci/riscv64-linux-gnu.cmake diff --git a/.github/workflows/risc.yml b/.github/workflows/risc.yml new file mode 100644 index 0000000..65c6b79 --- /dev/null +++ b/.github/workflows/risc.yml @@ -0,0 +1,29 @@ +name: Ubuntu rvv VLEN=128 (clang 17) + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - name: Install packages + run: | + sudo apt-get update -q -y + sudo apt-get install -y cmake make g++-riscv64-linux-gnu qemu-user-static clang-17 + - name: Build + run: | + CXX=clang++-17 CXXFLAGS="--target=riscv64-linux-gnu -march=rv64gcv" \ + cmake --toolchain=cmake/toolchains-ci/riscv64-linux-gnu.cmake -DCMAKE_BUILD_TYPE=Release -B build + cmake --build build/ -j$(nproc) + - name: Test VLEN=128 + run: | + export QEMU_LD_PREFIX="/usr/riscv64-linux-gnu" + export QEMU_CPU="rv64,v=on,vlen=128,rvv_ta_all_1s=on,rvv_ma_all_1s=on" + ctest --timeout 1800 --output-on-failure --test-dir build -j $(nproc) diff --git a/cmake/toolchains-ci/riscv64-linux-gnu.cmake b/cmake/toolchains-ci/riscv64-linux-gnu.cmake new file mode 100644 index 0000000..ed58a2d --- /dev/null +++ b/cmake/toolchains-ci/riscv64-linux-gnu.cmake @@ -0,0 +1,4 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR riscv64) + +set(CMAKE_CROSSCOMPILING_EMULATOR "qemu-riscv64-static")