On Wed, May 19, 2021 at 10:22:05AM -0500, Segher Boessenkool wrote: > On Wed, May 19, 2021 at 03:06:49PM +0000, Joakim Tjernlund wrote: > > On Wed, 2021-05-19 at 09:38 -0500, Segher Boessenkool wrote: > > > On Wed, May 19, 2021 at 06:42:40PM +1000, Nicholas Piggin wrote: > > > > Excerpts from Joakim Tjernlund's message of May 19, 2021 6:08 pm: > > > > > I always figured the ppc way was superior. It begs the question if not the other archs should > > > > > change instead? > > > > > > > > It is superior in some ways, not enough to be worth being different. > > > > > > The PowerPC syscall ABI *requires* using cr0.3 for indicating errors, > > > you will have to do that whether you conflate the concepts of return > > > code and error indicator or not! > > > > > > > Other archs are unlikely to change because it would be painful for > > > > not much benefit. > > > > > > Other archs cannot easily change for much the same reason :-) > > > > Really? I figured you could just add extra error indication in kernel syscall I/F. > > Eventually user space could migrate to the new indication. > > You seem to assume all user space uses glibc, or *any* libc even? This > is false. Some programs do system calls directly. Do not break the > kernel ABI :-) Even if it were easy to change, the old ppc ABI with a separate error indicator is much worse to use. In musl we paper over archs that do this silliness by converting to a normal negated errno code. There are literally no syscalls that need the ability to return negative values in addition to error codes; historically there were one or two (I only recall one fcntl command) but there were ways to disambiguate and they're only fallbacks for ancient kernels nowadays, if used at all. Rich