Re: [PATCH 3/4] openrisc: Support floating point user api

From: Stafford Horne
Date: Tue Jun 27 2023 - 12:41:24 EST


On Mon, Jun 26, 2023 at 11:38:40PM +0200, Szabolcs Nagy wrote:
> * Stafford Horne <shorne@xxxxxxxxx> [2023-04-18 17:58:12 +0100]:
> > Add support for handling floating point exceptions and forwarding the
> > SIGFPE signal to processes. Also, add fpu state to sigcontext.
> >
> > Signed-off-by: Stafford Horne <shorne@xxxxxxxxx>
> > ---
> ...
> > --- a/arch/openrisc/include/uapi/asm/sigcontext.h
> > +++ b/arch/openrisc/include/uapi/asm/sigcontext.h
> > @@ -28,6 +28,7 @@
> >
> > struct sigcontext {
> > struct user_regs_struct regs; /* needs to be first */
> > + struct __or1k_fpu_state fpu;
> > unsigned long oldmask;
> > };
>
> this seems to break userspace abi.
> glibc and musl have or1k abi without this field.
>
> either this is a new abi where binaries opt-in with some marking
> and then the base sigcontext should be unmodified,
>
> or the fp state needs to be added to the signal frame in a way that
> does not break existing abi (e.g. end of the struct ?) and also
> advertise the new thing via a hwcap, otherwise userspace cannot
> make use of it.
>
> unless i'm missing something.

I think you are right, I meant to look into this but it must have slipped
though. Is this something causing you issues or did you just notice it?

I didn't run into issues when running the glibc test suite, but I may have
missed it.

Just moving this to the end of the sigcontext may be all that is needed.

-Stafford