On Wed, Feb 21, 2024 at 07:22:21PM +0000, Edgecombe, Rick P wrote:
On Wed, 2024-02-21 at 14:06 -0500, dalias@libc.org wrote:
It's fine to turn RDSSP into an actual emulated read of the SSP, or at least an emulated load of zero so that uninitialized data is not left in the target register.
We can't intercept RDSSP, but it becomes a NOP by default. (disclaimer x86-only knowledge).
For arm64 we have a separate control GCSCRE0_EL1.nTR for access to GCSPR_EL0 (our SSP equivalent) we can use.
I have not looked at all the instructions that become #UD but I suspect they all have reasonable trivial ways to implement a "disabled" version of them that userspace can act upon reasonably.
This would have to be thought through functionally and performance wise. I'm not opposed if can come up with a fully fleshed out plan. How serious are you in pursuing musl support, if we had something like this?
Same here, we have to be careful since it's defining ABI in a way that we don't normally provide ABI but if there's a clear case for doing it then...