From b68435f083ccdc1c269ec983847d16af21f8da9d Mon Sep 17 00:00:00 2001 From: wanghan Date: Tue, 1 Jul 2025 12:16:49 +0800 Subject: [PATCH] build: Update benchmark submodule for RISC-V - Pins to b20cea67 to fix illegal instruction - Verified on openEuler RISC-V --- .github/workflows/riscv64-qemu-test.yaml | 43 ++++++++++++++++++++++++ third_party/benchmark | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/riscv64-qemu-test.yaml diff --git a/.github/workflows/riscv64-qemu-test.yaml b/.github/workflows/riscv64-qemu-test.yaml new file mode 100644 index 0000000..3b97480 --- /dev/null +++ b/.github/workflows/riscv64-qemu-test.yaml @@ -0,0 +1,43 @@ +name: riscv64-qemu-test + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + env: + RISCV_CROSSCOMPILE: "ON" + riscv_gnu_toolchain_download_path: https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2025.07.03/riscv64-glibc-ubuntu-24.04-gcc-nightly-2025.07.03-nightly.tar.xz + RISCV_PATH: /opt/riscv + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y --no-install-recommends \ + qemu-user qemu-user-static \ + build-essential \ + cmake \ + git + sudo mkdir -p $RISCV_PATH + wget ${riscv_gnu_toolchain_download_path} -O riscv-toolchain.tar.xz + sudo tar -xvf riscv-toolchain.tar.xz -C $RISCV_PATH --strip-components=1 + sudo sed -i "s|libdir='/mnt/riscv/riscv64-unknown-linux-gnu/lib'|libdir='$RISCV_PATH/riscv64-unknown-linux-gnu/lib'|g" $RISCV_PATH/riscv64-unknown-linux-gnu/lib/libatomic.la + + - name: Build and Run Unit Tests + run: | + export PATH=$RISCV_PATH/bin:$PATH + export LD_LIBRARY_PATH="/opt/riscv/lib:$LD_LIBRARY_PATH" + export QEMU_LD_PREFIX=$RISCV_PATH/sysroot + mkdir build && cd build + cmake -DCMAKE_BUILD_TYPE=Release ../ + make -j$(nproc) + make test + + - name: Run Benchmark + run: ./build/snappy_benchmark + working-directory: ./ diff --git a/third_party/benchmark b/third_party/benchmark index d572f47..b20cea6 160000 --- a/third_party/benchmark +++ b/third_party/benchmark @@ -1 +1 @@ -Subproject commit d572f4777349d43653b21d6c2fc63020ab326db2 +Subproject commit b20cea674170b2ba45da0dfaf03953cdea473d0d