While building this project I noticed the following weird result. When I run strings liblkl.a | grep lkl_sys | sort -u I get the following syscalls:
lkl_sys_access
lkl_syscall
lkl_sys_close
lkl_sys_getdents64
lkl_sys_halt
lkl_sys_mkdir
lkl_sys_mknod
lkl_sys_mount
lkl_sys_nanosleep
lkl_sys_open
lkl_sys_read
lkl_sys_rmdir
lkl_sys_umount
lkl_sys_unlink
However, lklfuce.c refers to a lot of extra lkl_sys_* functions. One example is lkl_sys_chown. I ran find -type f|xargs grep lkl_sys_chown on the whole linux tree that includes my built objects and the only references to this function were in lklfuse.c, lklfuse.o and lklfuse.
How is this linking happening? And why only this specific set of syscalls appears in the output of strings? I couldn't find anything unique about their definition either.
While building this project I noticed the following weird result. When I run
strings liblkl.a | grep lkl_sys | sort -uI get the following syscalls:However,
lklfuce.crefers to a lot of extralkl_sys_*functions. One example islkl_sys_chown. I ranfind -type f|xargs grep lkl_sys_chownon the whole linux tree that includes my built objects and the only references to this function were inlklfuse.c,lklfuse.oandlklfuse.How is this linking happening? And why only this specific set of syscalls appears in the output of
strings? I couldn't find anything unique about their definition either.