On Mon, Sep 18, 2023, at 8:02 PM, Po Lu wrote: > linux-musl is so named because there is no canonical name for a > Musl-based Linux system. The "musl" represents "musl-based operating > system", not merely the libc itself. Ditto for ulibc.
I'm gonna push back real hard on this specific aspect of what you are saying. The terminology used by config.* was laid down at a time when it was extremely unusual for the kernel, the C library, the C compiler, and the base set of " user space" system software to be developed by four (or more!) independent organizations. It is now, IMHO, more appropriate to think of $host_os (the shell variable set by AC_CANONICAL_HOST) as specifying the part of the ABI that *isn't* defined by the ISA. (Ignoring historical inconsistencies about whether to specify ABI-relevant ISA variants in $xxx_cpu or $xxx_os.) In particular, I claim that it is correct to use "linux-musl" to describe *any* system built on top of the Linux kernel and musl libc, and similarly "linux-gnu" to describe any system built on top of the Linux kernel and GNU libc, regardless of what other software is included. In general, I claim that components of a complete system that do not affect its C ABI should not be considered *at all* in defining its canonical system name. zw