Re: [musl] Re: Linux powerpc new system call instruction and ABI
From: Rich Felker <dalias@libc.org>
Date: 2021-05-19 23:49:15
Also in:
linux-api
On Wed, May 19, 2021 at 06:09:25PM +0000, Joakim Tjernlund wrote:
On Wed, 2021-05-19 at 10:22 -0500, Segher Boessenkool wrote:quoted
On Wed, May 19, 2021 at 03:06:49PM +0000, Joakim Tjernlund wrote:quoted
On Wed, 2021-05-19 at 09:38 -0500, Segher Boessenkool wrote:quoted
On Wed, May 19, 2021 at 06:42:40PM +1000, Nicholas Piggin wrote:quoted
Excerpts from Joakim Tjernlund's message of May 19, 2021 6:08 pm:quoted
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!quoted
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 :-)Adding an extra indicator does not break ABI, does it ?
It does, because the old ABI on most archs has no clobbers except the return value register. Some archs though have additional syscall-clobbered regs that could be repurposed as extra return values, but you could only rely on them being meaningful after probing for a kernel that speaks the new variant. This just makes things more complicated, not more useful.
W.r.t breaking ABI, isn't that what PowerPC is trying to do with the new syscall I/F?
No, it's a new independent interface. Rich