explosion / explosion/cython-blis
Installation failure on Termux/Android (aarch64) due to architecture-specific kernel
- Dominant language
- C
- Stars
- 239
- Forks
- 45
- PR merge metrics
- No merged PRs in 30d
Description
### Description
When attempting to install `cython-blis` on Termux (Android, aarch64), the build fails during the compilation of assembly kernels.
### Error
```
blis/_src/kernels/armv8a/3/bli_gemm_armv8a_asm_d6x8.c:78:1: error: inline assembly requires more registers than available
```
### Cause
The build system automatically detects the architecture as `aarch64` and defaults to the `cortexa57` configuration, which forces aggressive optimization flags (`-mtune=cortex-a57`). The inline assembly kernels for this architecture impose constraints that exceed the register availability in the Termux Clang environment.
### Solution
You can bypass the optimized, architecture-specific assembly kernels by setting the `BLIS_ARCH` environment variable to `generic` before running the installation:
```bash
export BLIS_ARCH=generic
pip install .
```
This ensures that more compatible reference kernels are used. The full test suite passes with this configuration.
### Environment
- OS: Android (Termux)
- Arch: aarch64 (Cortex-A55)
- Python: 3.14
- Compiler: Clang 21.1.8
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the Termux/aarch64 installation using the reported Clang environment and the BLIS_ARCH=generic workaround. Start with blis/_src/kernels/armv8a/3/bli_gemm_armv8a_asm_d6x8.c and trace how the build selects cortexa57; the issue does not specify whether the intended result is an automatic fallback, a build change, or documentation. Done should include a successful install and passing full test suite.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, python
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 50/100