build: Update benchmark submodule for RISC-V
- Pins to b20cea67 to fix illegal instruction
- Verified on openEuler RISC-V
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