[PATCH 0/2] RISC-V: Handle the siginfo_t offset problem

From: Alistair Francis
Date: Tue Jul 02 2019 - 20:30:31 EST


In the RISC-V 32-bit glibc port [1] the siginfo_t struct in the kernel
doesn't line up with the struct in glibc. In glibc world the _sifields
union is 8 byte alligned (although I can't figure out why) while in the
kernel wordl the _sifields union is 4 bytes alligned. This results in
information being lost in the waitid syscall.

This doesn't seem to be a great fix, but it is somewhat similar to what
x32 does (which has 64-bit time_t like RV32) and I can't figure out why
the two allignments are different.

1: https://github.com/alistair23/glibc/commits/alistair/rv32.next

Alistair Francis (2):
uapi/asm-generic: Allow defining a custom __SIGINFO struct
riscv/include/uapi: Define a custom __SIGINFO struct for RV32

arch/riscv/include/uapi/asm/siginfo.h | 32 +++++++++++++++++++++++++++
include/uapi/asm-generic/siginfo.h | 32 ++++++++++++++-------------
2 files changed, 49 insertions(+), 15 deletions(-)
create mode 100644 arch/riscv/include/uapi/asm/siginfo.h

--
2.22.0