No description
A full disk does not say so. gcc's bootstrap reported genattrtab: cannot close file tmp-attrtab.cc: No space left on device seventeen thousand lines into its log, behind two hundred lines of make recursion. Everything visible pointed at gcc, and the first grep for "error:" matched cpp_error() -- a function name in gcc's own source, the documented trap of grepping a whole file instead of the right part. df would have said it in one line, before the forty minutes. This host is shared, and the free margin is not stable, so it is checked per package rather than assumed once. 8 GiB clears gcc, the largest build here; smaller packages never trip it. The message names the reclaim command, because the answer is not obvious either: the src trees are regenerable, makepkg -C wipes them anyway. --- FR --- Un disque plein ne le dit pas. L'amorçage de gcc a signalé genattrtab: cannot close file tmp-attrtab.cc: No space left on device dix-sept mille lignes plus bas dans son journal, derrière deux cents lignes de récursion make. Tout ce qui était visible accusait gcc, et le premier grep sur « error: » est tombé sur cpp_error() — un nom de fonction dans les sources de gcc, précisément le piège documenté qui consiste à grep un fichier entier plutôt que le bon endroit. df l'aurait dit en une ligne, avant les quarante minutes. Cet hôte est partagé et la marge libre n'est pas stable : la vérification se fait donc par paquet, sans rien supposer. 8 GiB suffisent à gcc, le plus gros build ici ; les petits paquets ne la déclencheront jamais. Le message nomme la commande de récupération, car la réponse n'est pas évidente non plus : les arbres src se régénèrent, makepkg -C les efface de toute façon. Assisted-by: Claude Opus 5 |
||
|---|---|---|
| .github/workflows | ||
| arch-kernel | ||
| boot | ||
| patches | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| CODEOWNERS | ||
| Containerfile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| TODO.md | ||
Arch Linux s390x
A port of Arch Linux to IBM s390x mainframe architecture with systemd support.
Boots a full Arch Linux system on IBM mainframes (or QEMU s390x emulation) using a hybrid build: cross-compilation for the kernel, native s390x compilation on z/VM for userspace.
Quick Start
make container # build dev container (first time)
cp .env.example .env # configure z/VM access
make all # build kernel + initramfs + systemd
make test-systemd # boot it
What Works
- Arch Linux kernel 6.18.6-arch1 with Arch patches, cross-compiled
- Initramfs via modified mkinitcpio
- Static busybox built natively on z/VM, 2.3MB
- Root filesystem with ext4, switch_root to real rootfs
- Systemd as PID 1
Pacman, bash, and GNU coreutils are not yet ported.
Build System
The build uses two tiers:
Cross-compilation (x86_64 host): Kernel is built in a Fedora 43 container with s390x-linux-gnu-gcc. Initramfs is generated with a patched mkinitcpio that handles cross-architecture binary injection.
Native compilation (s390x z/VM): Busybox and systemd must be built on real s390x hardware. The z/VM system runs RHEL 9.6 with GCC 11.5.0. Scripts handle SSH deployment and retrieval automatically via .env configuration.