If N32 userland refers asm-mips/sigcontext.h, struct sigcontext cause some troubles. #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 struct sigcontext { unsigned long sc_regs[32]; ... The kernel use 64-bit for sc_regs[0], and both N32/N64 userland expects it was 64-bit. But size of 'long' on N32 is actually 32-bit. So this definition make some confusion. glibc has its own sigcontext.h and it uses 'unsigned long long' for sc_regs, so no real problem with glibc. Should we use 'unsigned long long' here as glibc does? Or should we have separate definition just for N32 userland? (kernel does not use #if _MIPS_SIM == _MIPS_SIM_NABI32 block anyway since kernel itself is compiled as n64) Or should we make struct sigcontext private to kernel and do not export for userland at all? Or ... do nothing? --- Atsushi Nemoto