Skip to content

Skip the unavailable time32 futex fallback on riscv32 - #1732

Open
omrzk wants to merge 1 commit into
bytecodealliance:mainfrom
omrzk:fix/riscv32-futex-time64
Open

omrzk wants to merge 1 commit into
bytecodealliance:mainfrom
omrzk:fix/riscv32-futex-time64

Conversation

@omrzk

@omrzk omrzk commented Nov 6, 2026

Copy link
Copy Markdown

The riscv32 Linux ABI provides futex_time64 and has no legacy time32 futex syscall. With libc 0.2.190 or newer, compiling the thread APIs fails because the legacy fallback still references the removed SYS_futex constant.

Exclude that fallback on riscv32 and add its source-built target to the existing Tier 3 CI checks. Other 32-bit targets retain the ENOSYS fallback. Fixes #1729.

Validation: the riscv32 all-APIs check fails on current main and passes with this change; the minimal std/thread check passes too. Armv7 and i686 libc-backend checks, native all-targets checking and formatting pass. Both native thread suites pass 32 tests with two capability-dependent skips each. The requested full raw/libc suites stop at an existing test opening the unavailable /dev/net/tun; the exact failure also occurs on clean main. Two existing unused-syscall-constant warnings remain in the riscv32 all-APIs check. No native riscv32 execution or older-kernel deployment was performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

riscv32gc-unknown-linux-gnu does not build with libc >= 0.2.190: futex_old_timespec names SYS_futex, which riscv32 does not have

1 participant