Repository navigation
Conversation
|
…us bracket must stay on one line Found while triaging PR #2434 (executorch): cibuildwheel building cmake from source (no riscv64 wheel for the pinned version) fails configure with "Could not find OpenSSL" until openssl-devel is installed; and check_patch.py's Upstream-Status regex has no re.DOTALL, so a bracketed Inappropriate reason wrapped across multiple lines fails the format check even though it reads as correctly bracketed.
|
Root cause: Fix: squash this branch into a single commit (or Unrelated and already fixed on this same branch: the |
39fb7ba to
a75cf68
Compare
|
Status of the riscv64 build: it compiles and passes
This isn't a hard platform gap. Real riscv64 boards whose device tree has a
|
Build executorch's pybind wheel for riscv64 (cp312/cp313/cp314) from the v1.4.1 checkout, mirroring upstream's build-wheels-linux.yml. Patches 0006/0007 keep the wheel usable when cpuinfo cannot initialize, as on runners whose kernel reports core_id -1: torch's libc10.so exports cpuinfo and interposes the copy statically linked here, so its failed init reaches XNNPACK's unguarded cpuinfo_get_uarch() (abort at import) and executorch's threadpool (nullptr for every caller).
|
Root cause of the cp312/cp313/cp314 smoke-test abort (run 36947661582), and the fix in 346337d. The faulthandler trace puts the abort inside Patching the vendored Guarding XNNPACK alone only moves the crash:
Checked locally against the v1.4.1 sources with a stub cpuinfo whose init fails and whose getters abort like the real one. Unpatched
Generated by Claude Code |
executorch1.4.1PyTorch's on-device inference runtime: a CMake pybind11 extension with the XNNPACK delegate and portable/optimized/quantized kernels. Upstream publishes no riscv64 wheel.
Mirrors upstream's
build-wheels-linux.yml.Differs from upstream
openssl-develadded - cmake has no riscv64 wheel and builds from source.torch==2.13.0preinstalled - CMake imports torch; matchestorch_pin.py.Matrix: cp312/cp313/cp314 - torch and pytorch-tokenizers have no riscv64 cp310/cp311; upstream ships no cp314t.
Testing
License: Wheel bundles XNNPACK/cpuinfo/pthreadpool/FP16/FXdiv/flatbuffers/flatcc/Eigen/pocketfft/nlohmann-json/pybind11 (BSD/MIT/Apache-2.0/MPL-2.0); upstream ships no licence text for them, so the build adds it.
Patches
0001-packaging-...- Inappropriate, distributor-only licence bundling. Any arch.0002-cmake-relax-source-directory-name-...- Inappropriate, cibuildwheel's fixed/projectpath fails the name check. Any arch.0003-cmake-build-pybind-extensions-as-MODULE-...- To upstream. Configure needs Development.Embed, absent on manylinux. Any arch.0004-cmake-keep-portable_lib-SHARED-...- To upstream. Keeps the LLM runner linking after 0003. Any arch.0005-cmake-drop-FFHT-simd-arch-fatal-error-...- To upstream. Configure hard-errors outside x86_64/aarch64. Any other arch.0006-xnnpack-only-query-cpuinfo-uarchs-...- To upstream (XNNPACK). Import aborts when cpuinfo cannot initialize. riscv64/ppc64.0007-threadpool-fall-back-to-the-online-CPU-count-...- To upstream. No threadpool when cpuinfo cannot initialize; XNNPACK delegate aborts. Any arch.