Prefix doesn't build a kernel.
A Gentoo Prefix is a full Gentoo userland that lives under a
non-root
EPREFIX
and runs on top of a foreign
host OS. It ships no kernel image, no bootloader, no init, and no
kernel modules. It borrows whatever kernel the host is already
running — so most of the time the kernel simply isn't Prefix's concern.
6.17.0-1017-aws
x86_64
glibc 2.39
Why the kernel matters to Prefix
Prefix is userland-only by design. That is exactly why it can install without root and coexist with the host distro:
-
No kernel, no init, no bootloader.
Prefix never touches
/bootor the host's PID 1. -
uname is the host's.
Inside the Prefix,
uname -rreports the host kernel — there is nothing of Prefix's own to report. - Syscalls come from the host. Every binary in the Prefix makes syscalls into the host kernel; Prefix provides the libraries, the host provides the ABI.
So for running software, the kernel is the host's problem. Prefix stays deliberately kernel-agnostic.
When compiling, the kernel matters again
The moment you build inside the Prefix, two kernel-shaped artifacts leak into the toolchain:
-
sys-kernel/linux-headers— the UAPI headers glibc and many packages#include. They set the build-time ceiling of known syscalls and ioctls (io_uring, statx, clone3, …). -
glibc --enable-kernel=— the minimum kernel a compiled binary will agree to run on. Build against a floor newer than the host and you get “FATAL: kernel too old” .
The invariant: the running host kernel must be ≥ whatever the binaries were compiled to require. Headers may run ahead of the host, but the glibc floor and any syscall you actually use must stay within what the host kernel provides.
What prefix.ndexr.io is building now
Discovered live from the committed Prefix tree. The
Builds
column is “no kernel image” for every
triple — by design. The kernel input that Prefix does track is the
linux-headers
UAPI package shown under
Tracks
.
| Triple | Tracks (build-time UAPI) | Builds |
|---|---|---|
x86_64-linux-gnu
|
sys-kernel/linux-headers-6.18
|
no kernel image |
Host kernel for comparison:
6.17.0-1017-aws
. Keep
linux-headers
≤ the oldest host you intend to run on, or pin the glibc
floor accordingly.