No description
Disabling libgccjit took four separate cuts, and this is the fourth. Removing the second configure pass, the pkgname entry and the _pick lines still left package_gcc() calling make -C gcc DESTDIR="$pkgdir" jit.install-common jit.install-info which fails on a library that was never built: install: cannot install libgccjit.so.0.0.1 The lesson repeats: in an Arch PKGBUILD a component is referenced in several independent places -- the pkgname array, a build block, _pick lines in package(), and explicit make targets. Removing it means finding all four, and grepping for the component name after each cut is the only way to know. shadow and util-linux both stop on a missing libpam. Same family as every host makedepend before them: invisible until a build names it, because --nodeps forbids pacman from checking. --- FR --- Desactiver libgccjit aura demande quatre coupes distinctes, et voici la quatrieme. Retirer la seconde passe de configuration, l entree de pkgname et les lignes _pick laissait encore package_gcc() appeler make -C gcc DESTDIR="$pkgdir" jit.install-common jit.install-info qui echoue sur une bibliotheque jamais batie : install: cannot install libgccjit.so.0.0.1 La lecon se repete : dans un PKGBUILD d Arch, un composant est reference en plusieurs endroits independants -- le tableau pkgname, un bloc de compilation, des lignes _pick dans package(), et des cibles make explicites. Le retirer suppose de trouver les quatre, et chercher son nom apres chaque coupe est le seul moyen de le savoir. shadow et util-linux s arretent tous deux sur un libpam absent. Meme famille que tous les makedepends d hote precedents : invisibles jusqu a ce qu une compilation les nomme, puisque --nodeps interdit a pacman de verifier. 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.