I just upgraded to the most recent 2.4.29-pre1 sources from the CVS archive with the intent of being able to compile with gcc-3.4.3. It turns out that the compiler is splitting: save_static_function(sys_fork); static_unused int _sys_fork(struct pt_regs regs) The result being an unusable kernel. I think that this issue has been discussed before, but I couldn't find the solution in the mail group. So I applied this small hack. The modifications to syscall.c and signal.c may not be necessary, but I borrowed them from the 2.6 tree in hopes of fixing the problem and then moved to the Makefile change. It may be that only the Makefile change is necessary (I suspect so), but I have not tried it alone. The CVS versions in the diff are from my local cvs and do not correspond to the linux-mips.org CVS. David Daney.