No description
--disable-doc was added and doxygen still ran. The API reference sits behind its own automake conditional, and the generated Makefile shows it plainly: @COND_DOXYGEN_TRUE@$(top_builddir)/doc/api/index.html: ... with the prefix stripped, so configure had set it true. Two conditionals in one package: --disable-doc for the man pages, --disable-doxygen for the API reference. This is the third documentation toolchain xz has asked for, after po4a. --disable-doxygen is NOT in configure's help text -- only --enable-doxygen is -- and it works anyway. That was checked rather than assumed: AC_ARG_ENABLE accepts both forms, and `enable_doxygen` is a real variable the script tests. groff taught the same lesson from the other side, where no such option existed and an invented flag would have drawn a warning and changed nothing. --- FR --- --disable-doc avait été ajouté et doxygen tournait encore. La référence d'API est derrière sa propre condition automake, et le Makefile généré le montre : @COND_DOXYGEN_TRUE@$(top_builddir)/doc/api/index.html: ... préfixe retiré, donc configure l'avait mise à vrai. Deux conditions dans un même paquet : --disable-doc pour les pages de manuel, --disable-doxygen pour l'API. Troisième chaîne de documentation que xz réclame, après po4a. --disable-doxygen n'est PAS dans l'aide de configure — seul --enable-doxygen y est — et fonctionne quand même. Cela a été vérifié plutôt que supposé : AC_ARG_ENABLE accepte les deux formes, et `enable_doxygen` est une variable que le script teste réellement. groff a enseigné la même leçon par l'autre bout, où aucune option n'existait et où un drapeau inventé n'aurait tiré qu'un avertissement sans rien changer. Assisted-by: Claude Opus 5 |
||
|---|---|---|
| .github/workflows | ||
| arch-kernel | ||
| boot | ||
| patches | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| CODEOWNERS | ||
| Containerfile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| RELAIS.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.