Skip to content

Add riscv64 (RISC-V) manylinux wheel builds #16517

Description

@gounthar

Is your feature request related to a problem? Please describe.

There are no pre-built wheels for the linux_riscv64 platform. Users on RISC-V hardware (e.g., SiFive boards, StarFive VisionFive 2, Milk-V) must compile google-crc32c from source, which requires a working C toolchain, cmake, and the google/crc32c submodule. This is a significant barrier for RISC-V adoption since many users expect pip install google-crc32c to just work.

Describe the solution you'd like

Add riscv64 to the manylinux wheel build matrix using quay.io/pypa/manylinux_2_28_riscv64 (the official PyPA manylinux image for RISC-V). The existing build_on_centos.sh script already works inside manylinux_2_28 containers, and QEMU user-mode emulation makes cross-building straightforward.

Additionally, add a GitHub Actions workflow that builds and tests riscv64 wheels via QEMU, so CI coverage is visible on pull requests.

Describe alternatives you've considered

  • Building from source on native riscv64 hardware: works but is slow and requires users to have build tools installed.
  • Cross-compiling with a riscv64 GCC toolchain outside Docker: more complex setup and harder to produce manylinux-compliant wheels.

Additional context

  • The manylinux_2_28_riscv64 image is officially maintained by PyPA: https://quay.io/repository/pypa/manylinux_2_28_riscv64
  • The google/crc32c C library builds cleanly on riscv64 with cmake
  • Several Python ecosystem packages (numpy, scipy, etc.) are adding riscv64 wheel support

Metadata

Metadata

Assignees

No one assigned

    Labels

    api: storageIssues related to the Cloud Storage API.priority: p3Desirable enhancement or fix. May not be included in next release.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions