In order support easy building of IRIX emulation support as either a module or statically, I would like to simply have the 'sa_restorer' function pointer be defined for all big endian architectures. This means extra storage space, but I wanted comments first. The problem is that if you configure for IRIX, build and then decide that you want to build it as a module, CONFIG_BINFMT_IRIX_MODULE gets defined instead of CONFIG_BINFMT_IRIX and hence 'signal.h' changes and the whole kernel has to be rebuilt. If we simply have it be defined for big endian architectures regardless, then there is no recompile. Al Viro did comment that Christoph Hellwig may be moving stuff like 'struct sighand_struct' out of 'sched.h' along with some other things which might make this below a non-issue, but that is far off. Comments before I commit?
-Steve
Index: signal.h =================================================================== RCS file: /home/cvs/linux/include/asm-mips/signal.h,v retrieving revision 1.17 diff -u -r1.17 signal.h --- signal.h 30 Sep 2003 14:27:29 -0000 1.17 +++ signal.h 6 Jan 2005 04:21:58 -0000 @@ -135,7 +135,7 @@
struct k_sigaction { struct sigaction sa; -#ifdef CONFIG_BINFMT_IRIX +#if !defined(CONFIG_CPU_LITTLE_ENDIAN) void (*sa_restorer)(void); #endif };