Hi all, I am trying to add a new system call to android kernel, but met the following errors during compilation:
MODPOST vmlinux.o WARNING: modpost: Found 10 section mismatch(es). To see full details build your kernel with: 'make CONFIG_DEBUG_SECTION_MISMATCH=y' GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 arch/arm/kernel/built-in.o: In function `__sys_trace_return': /home/lwan1/WORKING_DIRECTORY/kernel/arch/arm/kernel/entry-common.S:323: undefined reference to `sys_myservice' arch/arm/kernel/built-in.o: In function `sys_oabi_readahead': /home/lwan1/WORKING_DIRECTORY/kernel/arch/arm/kernel/entry-common.S:468: undefined reference to `sys_myservice' make[1]: *** [.tmp_vmlinux1] Error 1 make: *** [sub-make] Error 2 make: Leaving directory `/home/lwan1/WORKING_DIRECTORY/kernel' The following is what I did: 1. Add the following line into "arch/arm/include/asm/inistd.h": #define __NR_myservice (__NR_SYSCALL_BASE+366) 2. Add the following line into "arch/arm/kernel/call.S": /* 366 */ CALL(sys_myservice) 3. Create "myservice.h" in folder "include/linux/": #ifndef __LINUX_MYSERVICE_H #define __LINUX_MYSERVICE_H #include <linux/unistd.h> #include <linux/linkage.h> #include <linux/errno.h> _syscall2(int, myservice, int, arg1, char*, arg2); #endif 4. Create "myservice.c" in folder "ipc/": #include <include/myservice.h> asmlinkage int sys_myservice (int arg1, char* arg2) { //kernel messages logged to /var/log/kernel/warning printk(KERN_EMERG “my service is running”); return(1); } 5. Add the following line into makefile in folder "ipc/": obj -y += myservice.o May I ask what have I done wrong or miss? Any hint would be warmly welcomed. Thank you very much. Yours Sincerely -- unsubscribe: android-kernel+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-kernel