No description
The PKGBUILD configures gcc twice: once for the compiler, once for libgccjit with --enable-languages=jit. The hook rewrote every occurrence, so the second tree built a compiler instead of a library and package() died on cp: cannot stat 'gcc/libgccjit.so*': No such file or directory after forty minutes of compiling -- the worst kind of failure, at the very end, from a patch that looked right. The sed now skips any line containing jit. A patch that rewrites "every occurrence" of anything in a PKGBUILD should be suspected by default: these files configure the same source tree several times, for different outputs. --- FR --- Le PKGBUILD configure gcc deux fois : une fois pour le compilateur, une fois pour libgccjit avec --enable-languages=jit. Le crochet reecrivait toutes les occurrences, si bien que le second arbre batissait un compilateur au lieu d une bibliotheque, et package() mourait sur cp: cannot stat 'gcc/libgccjit.so*': No such file or directory apres quarante minutes de compilation -- le pire genre d echec, tout a la fin, venu d un correctif qui semblait juste. Le sed ecarte desormais toute ligne contenant jit. Un correctif qui reecrit « toutes les occurrences » de quoi que ce soit dans un PKGBUILD doit etre suspecte d office : ces fichiers configurent plusieurs fois le meme arbre source, pour des sorties differentes. Assisted-by: Claude Opus 5 |
||
|---|---|---|
| .github/workflows | ||
| arch-kernel | ||
| boot | ||
| patches | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| CODEOWNERS | ||
| Containerfile | ||
| LICENSE | ||
| Makefile | ||
| README.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.