D062 - The console generation is a build input; everything else is detected
Status: decided Date: 2026-09-26
TARGET (orbis, neo,
prospero, trinity; default
prospero) selects the generation a build declares,
including EI_ABIVERSION and the dynamic-table convention.
GEN=4|5 is accepted as an alias. Anything a platform
answers at run time is detected at run time, from which symbols and
libraries resolve. One source tree produces as many binaries as the
targets need.
Why: a loader reads the generation byte before any guest code runs, and loaders of the two generations refuse each other's value, so it cannot be decided by the guest. Everything after load can be.
Rejected: one constant for every loader - one generation's loaders refuse it. A separate source per target - findings would stop being comparable.