Skip to content

Commit 3d319b1

Browse files
committed
ci: use newer qemu-user-static for RVV cross tests
docker/setup-qemu-action@v3.0.0 pulls tonistiigi/binfmt:latest, which pins an older qemu (~6.x/7.x) whose RVV implementation miscompiles the vmulh / vmulhu variants emitted by gcc-14 at vlen=128: the test binary runs forever under qemu while making no forward progress, hitting the 6h GHA job timeout. Local repro with qemu 11 / Ubuntu 24.04's qemu-user-static (8.2.x) passes the same binary in ~30s. Switch to the apt-shipped qemu-user-static so the cross-rvv job picks up a maintained qemu without depending on the pinned docker image.
1 parent 244d74b commit 3d319b1

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

.github/workflows/cross-rvv.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,14 @@ jobs:
3535
sudo ln -srf $(which clang++-${{ matrix.sys.version }}) /usr/bin/clang++
3636
rm llvm.sh
3737
- name: Setup QEMU
38-
uses: docker/setup-qemu-action@v3.0.0
39-
with:
40-
platforms: riscv64
38+
# Use the qemu-user-static package shipped by Ubuntu 24.04 (qemu 8.2+)
39+
# rather than docker/setup-qemu-action, which pins an older qemu via
40+
# tonistiigi/binfmt and miscompiles RVV vmulh* at vlen=128 (the test
41+
# binary hangs under qemu, with no forward progress, until the GHA
42+
# 6h timeout).
43+
run: |
44+
sudo apt-get -y -qq update
45+
sudo apt-get -y -qq --no-install-suggests --no-install-recommends install qemu-user-static
4146
- name: Setup Ninja
4247
run: |
4348
sudo apt-get -y -qq install ninja-build

0 commit comments

Comments
 (0)