On 12/07/2011 09:25 PM, kha...@kics.edu.pk wrote: > +#if defined(TARGET_MIPS64) > + /* tswapal() do 64 bit swap in case of MIPS64 but > + we need 32 bit swap as sa_flags is 32 bit */ > + k->sa_flags = bswap32(act->sa_flags); > +#else > k->sa_flags = tswapal(act->sa_flags); > +#endif
The condition in syscall_defs.h is TARGET_MIPS, not TARGET_MIPS64. They should match, despite the fact that it doesn't actually matter for the 32-bit abis. > #elif defined(TARGET_ABI_MIPSN64) > > -# warning signal handling not implemented > +struct target_sigcontext { > + uint32_t sc_regmask; /* Unused */ > + uint32_t sc_status; There's no reason to duplicate all this code. Yes, when someone wrote this in the first place, they wrote separate sectons for each mips abi. However, as you can see that huge portions of this block are identical, this was obviously a mistake. Start by changing the original section to #elif defined(TARGET_MIPS) and see what needs changing specifically for the ABIs. I'm not even sure there are any differences at all. r~