Hello guys, I am facing some issue during adding system call on OpenBSD 6.3. I have shown my pathways to add system call, please guys correct me if somewhere I have forgotten something to add or build.
1) echo "331 { int sys_hello(void); }" >> /usr/src/sys/kern/syscalls.master 2) make init_sysent.c 3) /usr/src/sys/kern/sys_hello.c #include <sys/types.h> #include <sys/param.h> #include <sys/kernel.h> #include <sys/syscallargs.h> int sys_hello(struct proc *p, void *v, register_t *retval) { printf("Hello world from kernel space.\n"); return (0); } 4) echo "file kern/sys_hello.c" >> /usr/src/sys/conf/files 5) cd /usr/src/sys/arch/amd64/compile/CUSTOM.MP/ 6) make obj && make -j4 And, then, It throws an error given below, " ld -T ld.script -X --warn-common -nopie -o bsd ${SYSTEM_HEAD} vers.o ${OBJS} init_sysent.o:(.data+0x14b8): undefined reference to `sys_hello' *** Error 1 in /usr/src/sys/arch/amd64/compile/CUSTOM.MP (Makefile:918 'bsd': @echo ld -T ld.script -X --warn-common -nopie -o bsd '${SYSTEM...) " I have even tried to "make" with "-n" and "-d"options, so, that I can debug make process, but, it didn't help me. I have also tried to manually include sys.hello.o in {OBJS} in file "/usr/src/sys/arch/amd64/compile/CUSTOM.MP/obj/Makefile" and also in {CFILES} etc. like all other system calls files included. For example, sys_generic.c etc. But, some days ago, I did the same with OpenBSD 6.2 or 6.3 (I forgot) in VirtualBox and it was working at that time. The system call was added successfully at that time.