Nice patches to check unwired system calls are available recently: http://lkml.org/lkml/2007/3/21/358 http://lkml.org/lkml/2007/3/21/360 http://lkml.org/lkml/2007/3/21/361 These patches are already in -mm tree. I tried it with quick and dirty hack for N32/O32 on 64-bit kernel. Many of these warnings seem false positive but it might be worth to look at. On 32-bit kernel: CC init/missing_syscalls.o In file included from /work/linux-mips/init/missing_syscalls.c:97: init/missing_syscalls.h:331:2: warning: #warning syscall select not implemented init/missing_syscalls.h:763:2: warning: #warning syscall vfork not implemented init/missing_syscalls.h:1083:2: warning: #warning syscall fadvise64_64 not implemented On 64-bit kernel: CC init/missing_syscalls.o In file included from /work/linux-mips/init/missing_syscalls.c:97: init/missing_syscalls.h:55:2: warning: #warning syscall time not implemented init/missing_syscalls.h:279:2: warning: #warning syscall ssetmask not implemented init/missing_syscalls.h:331:2: warning: #warning syscall select not implemented init/missing_syscalls.h:347:2: warning: #warning syscall uselib not implemented init/missing_syscalls.h:763:2: warning: #warning syscall vfork not implemented init/missing_syscalls.h:887:2: warning: #warning syscall getdents64 not implemented CC arch/mips/kernel/missing_syscalls_n32.o In file included from /work/linux-mips/arch/mips/kernel/missing_syscalls.h:1, from /work/linux-mips/arch/mips/kernel/../../../init/missing_syscalls.c:97, from /work/linux-mips/arch/mips/kernel/missing_syscalls_n32.c:1: arch/mips/kernel/../../../init/missing_syscalls.h:55:2: warning: #warning syscall time not implemented arch/mips/kernel/../../../init/missing_syscalls.h:279:2: warning: #warning syscall ssetmask not implemented arch/mips/kernel/../../../init/missing_syscalls.h:331:2: warning: #warning syscall select not implemented arch/mips/kernel/../../../init/missing_syscalls.h:347:2: warning: #warning syscall uselib not implemented arch/mips/kernel/../../../init/missing_syscalls.h:763:2: warning: #warning syscall vfork not implemented arch/mips/kernel/../../../init/missing_syscalls.h:775:2: warning: #warning syscall truncate64 not implemented arch/mips/kernel/../../../init/missing_syscalls.h:779:2: warning: #warning syscall ftruncate64 not implemented arch/mips/kernel/../../../init/missing_syscalls.h:783:2: warning: #warning syscall stat64 not implemented arch/mips/kernel/../../../init/missing_syscalls.h:787:2: warning: #warning syscall lstat64 not implemented arch/mips/kernel/../../../init/missing_syscalls.h:791:2: warning: #warning syscall fstat64 not implemented arch/mips/kernel/../../../init/missing_syscalls.h:887:2: warning: #warning syscall getdents64 not implemented arch/mips/kernel/../../../init/missing_syscalls.h:1083:2: warning: #warning syscall fadvise64_64 not implemented arch/mips/kernel/../../../init/missing_syscalls.h:1191:2: warning: #warning syscall fstatat64 not implemented CC arch/mips/kernel/missing_syscalls_o32.o In file included from /work/linux-mips/arch/mips/kernel/missing_syscalls.h:1, from /work/linux-mips/arch/mips/kernel/../../../init/missing_syscalls.c:97, from /work/linux-mips/arch/mips/kernel/missing_syscalls_o32.c:1: arch/mips/kernel/../../../init/missing_syscalls.h:331:2: warning: #warning syscall select not implemented arch/mips/kernel/../../../init/missing_syscalls.h:763:2: warning: #warning syscall vfork not implemented arch/mips/kernel/../../../init/missing_syscalls.h:1083:2: warning: #warning syscall fadvise64_64 not implemented And here's my hack. Advices from kbuild gurus are highly appreciated. arch/mips/kernel/Makefile | 11 +++++++++++ arch/mips/kernel/missing_syscalls.h | 1 + arch/mips/kernel/missing_syscalls_n32.c | 1 + arch/mips/kernel/missing_syscalls_o32.c | 1 + 4 files changed, 14 insertions(+) diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index 4924626..d6abdc5 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile @@ -4,6 +4,17 @@ extra-y := head.o init_task.o vmlinux.lds +ifdef CONFIG_MIPS32_N32 +missing_syscalls_n32.o: missing_syscalls_n32.c +CFLAGS_missing_syscalls_n32.o = -mabi=n32 +always += missing_syscalls_n32.o +endif +ifdef CONFIG_MIPS32_O32 +missing_syscalls_o32.o: missing_syscalls_o32.c +CFLAGS_missing_syscalls_o32.o = -mabi=32 +always += missing_syscalls_o32.o +endif + obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \ ptrace.o reset.o semaphore.o setup.o signal.o syscall.o \ time.o topology.o traps.o unaligned.o diff --git a/arch/mips/kernel/missing_syscalls.h b/arch/mips/kernel/missing_syscalls.h new file mode 100644 index 0000000..9c4f2e9 --- /dev/null +++ b/arch/mips/kernel/missing_syscalls.h @@ -0,0 +1 @@ +#include "../../../init/missing_syscalls.h" diff --git a/arch/mips/kernel/missing_syscalls_n32.c b/arch/mips/kernel/missing_syscalls_n32.c new file mode 100644 index 0000000..ce527c6 --- /dev/null +++ b/arch/mips/kernel/missing_syscalls_n32.c @@ -0,0 +1 @@ +#include "../../../init/missing_syscalls.c" diff --git a/arch/mips/kernel/missing_syscalls_o32.c b/arch/mips/kernel/missing_syscalls_o32.c new file mode 100644 index 0000000..ce527c6 --- /dev/null +++ b/arch/mips/kernel/missing_syscalls_o32.c @@ -0,0 +1 @@ +#include "../../../init/missing_syscalls.c" --- Atsushi Nemoto