Packages for Debian 13
Run ILP32 programs on a normal 64-bit Debian 13 system (unofficial).
How it works
- The ILP32 libraries live in
/usr/libilp32, next to the system's 64-bit libraries: Debian 13's own glibc 2.41 and GCC 14.2 runtime, plus further libraries and Python 3.13, all built from Debian's sources with Debian's options. Debian's own packages are not changed. - A kernel package (Linux 6.12.114, the same 6.12 LTS series as Debian 13) uses Debian 13's configuration and adds the ILP32 ABI.
- Tested in QEMU and on hardware: a Raspberry Pi 3 Model B+, an ESPRESSObin and a Cortex-A72 board.
Install
The apt repository is signed with the key D572 3B34 0CBE 7C99 2091 8243 9C6A 5E84 1E28 9B20.
wget https://github.com/ilp32-a64/debian-ilp32/releases/download/v2026.11.04/ilp32-a64-archive-keyring_2026.10.24_all.deb
sudo apt install ./ilp32-a64-archive-keyring_2026.10.24_all.deb
sudo apt update
sudo apt install linux-image-ilp32-arm64 ilp32-runtime
sudo reboot
# optional: compiler and Python
sudo apt install gcc-aarch64-linux-gnu-ilp32 g++-aarch64-linux-gnu-ilp32
sudo apt install python3-ilp32
Details: github.com/ilp32-a64/debian-ilp32.
Before you install
- The kernel is not signed for Secure Boot: turn Secure Boot off.
- DKMS modules are rebuilt automatically once
linux-headers-ilp32-arm64is installed; vendor.kofiles built for Debian's kernel do not load. - Debian's original kernel stays installed: choose it in the GRUB menu (UEFI), the extlinux menu
(U-Boot boards) or via
config.txt(Raspberry Pi). - After a Debian kernel update, check
uname -r: if it does not end in-ilp32-arm64, choose the-ilp32-arm64entry in the boot menu, or removelinux-image-arm64so that Debian kernel updates are no longer installed. - Raspberry Pi: Debian 13's image does not grow the root partition (about 2.5 GB); grow it first.
- Python: pip accepts only
linux_aarch64_ilp32and pure-Python wheels.
These packages are unofficial and not affiliated with Debian.