Home | History | Annotate | Line # | Download | only in sys
Makefile.inc revision 1.257
      1 #	$NetBSD: Makefile.inc,v 1.257 2024/10/03 16:59:15 christos Exp $
      2 #	@(#)Makefile.inc	8.3 (Berkeley) 10/24/94
      3 
      4 # sys sources
      5 .PATH: ${ARCHDIR}/sys ${.CURDIR}/sys
      6 
      7 # other sources shared with the kernel, used in syscalls
      8 SRCS+=	cpuset.c
      9 # glue to offer userland wrappers for some syscalls
     10 SRCS+=	accept4.c clock_getcpuclockid.c eventfd_read.c \
     11 	eventfd_write.c posix_fadvise.c posix_madvise.c ppoll.c sched.c \
     12 	sigqueue.c sigtimedwait.c sigwait.c sigwaitinfo.c statvfs.c swapon.c \
     13 	semctl.c vadvise.c
     14 
     15 .if ${RUMPRUN} != "yes"
     16 # modules with non-default implementations on at least one architecture:
     17 SRCS+=	__clone.S __vfork14.S brk.S fork.S pipe.S \
     18 	getcontext.S \
     19 	ptrace.S sbrk.S shmat.S \
     20 	syscall.S __syscall.S __clone.S cerror.S
     21 
     22 _LSRC+=	Lint___clone.c Lint___vfork14.c Lint_brk.c Lint_clone.c \
     23 	Lint_getcontext.c Lint_pipe.c Lint_ptrace.c \
     24 	Lint_sbrk.c Lint___sigaction_siginfo.c Lint_syscall.c Lint___syscall.c \
     25 	LintSysNormal.c LintSysNoerr.c LintSysPseudoNoerr.c
     26 
     27 .if ${MKLINT} != "no"
     28 LSRCS+=		${_LSRC}
     29 DPSRCS+=	${_LSRC:MLintSys*.c}
     30 CLEANFILES+=	${_LSRC:MLintSys*.c}
     31 .endif
     32 
     33 # glue to provide compatibility between GCC 1.X and 2.X and for compat
     34 # with old syscall interfaces.
     35 GLUE+= fdiscard.c ftruncate.c lseek.c mmap.c \
     36 	pread.c preadv.c pwrite.c pwritev.c truncate.c ntp_adjtime.c \
     37 	mknodat.c
     38 GLUENOERR+= posix_fallocate.c
     39 GLUE50+= adjtime.c clock_settime.c settimeofday.c
     40 
     41 # 'glue' files might .c or .S depending on the architecture
     42 .for glue in ${GLUE}
     43 . if exists(${glue:.c=.S})
     44 # Build the ASM glue file
     45 SRCS+=${glue:.c=.S}
     46 . else
     47 .  if exists(__${glue:.c=.S})
     48 SRCS+=__${glue:.c=.S} ${glue}
     49 .  else
     50 # Build the C glue file
     51 SRCS+= ${glue}
     52 # and an asm entry for __<syscall>
     53 ASM_GLUE+= tmp_${glue:.c=.S}
     54 .  endif
     55 . endif
     56 .endfor
     57 
     58 # 'glue' files might .c or .S depending on the architecture
     59 .for glue in ${GLUENOERR}
     60 . if exists(${glue:.c=.S})
     61 # Build the ASM glue file
     62 SRCS+=${glue:.c=.S}
     63 . else
     64 .  if exists(__${glue:.c=.S})
     65 SRCS+=__${glue:.c=.S} ${glue}
     66 .  else
     67 # Build the C glue file
     68 SRCS+= ${glue}
     69 # and an asm entry for __<syscall>
     70 ASM_GLUENOERR+= tmp_${glue:.c=.S}
     71 .  endif
     72 . endif
     73 .endfor
     74 
     75 # 'glue' files might .c or .S depending on the architecture
     76 .for glue in ${GLUE50}
     77 . if exists(${glue:.c=.S})
     78 # Build the ASM glue file
     79 SRCS+=${glue:.c=.S}
     80 . else
     81 .  if exists(__${glue:.c=}50.S)
     82 SRCS+=__${glue:.c=}50.S ${glue}
     83 .  else
     84 # Build the C glue file
     85 SRCS+= ${glue}
     86 # and an asm entry for __<syscall>
     87 ASM_GLUE+= tmp___${glue:.c=}50.S
     88 .  endif
     89 . endif
     90 .endfor
     91 
     92 # modules with default implementations on all architectures:
     93 SRCS+=	__sigaction_siginfo.c
     94 
     95 ASM=\
     96     __acl_get_link.S __acl_set_link.S __acl_delete_link.S \
     97     __acl_aclcheck_link.S __acl_get_file.S __acl_set_file.S __acl_get_fd.S \
     98     __acl_set_fd.S __acl_delete_file.S __acl_delete_fd.S \
     99     __acl_aclcheck_file.S __acl_aclcheck_fd.S \
    100     access.S acct.S \
    101 	    bind.S \
    102 	chdir.S chflags.S chmod.S chown.S chroot.S \
    103 		clock_getcpuclockid2.S \
    104 		__clock_getres50.S __clock_gettime50.S \
    105 	dup.S dup2.S __dup3100.S \
    106 	eventfd.S \
    107 	extattrctl.S \
    108 		extattr_delete_fd.S extattr_delete_file.S \
    109 		extattr_delete_link.S extattr_get_fd.S extattr_get_file.S \
    110 		extattr_get_link.S extattr_list_fd.S extattr_list_file.S \
    111 		extattr_list_link.S extattr_set_fd.S extattr_set_file.S \
    112 		extattr_set_link.S \
    113 	setxattr.S getxattr.S listxattr.S removexattr.S \
    114 		lsetxattr.S lgetxattr.S llistxattr.S lremovexattr.S \
    115 		fsetxattr.S fgetxattr.S flistxattr.S fremovexattr.S \
    116 	faccessat.S fchdir.S fchflags.S fchmod.S fchmodat.S fchown.S \
    117 		fchownat.S fchroot.S fexecve.S __fhopen40.S __fhstat50.S \
    118 		__fhstatvfs190.S fktrace.S flock.S fpathconf.S __fstat50.S \
    119 		__fstatvfs190.S fstatat.S  __futimes50.S futimens.S \
    120 	__getcwd.S __getdents30.S __getfh30.S __getvfsstat90.S getgroups.S\
    121 		__getitimer50.S __getlogin.S getpeername.S getpgid.S getpgrp.S \
    122 		getpriority.S getrandom.S getrlimit.S __getrusage50.S getsid.S \
    123 		getsockname.S getsockopt.S getsockopt2.S __gettimeofday50.S \
    124 	ioctl.S \
    125 	kqueue.S kqueue1.S ktrace.S \
    126 		_ksem_close.S _ksem_destroy.S _ksem_getvalue.S _ksem_init.S \
    127 		_ksem_post.S _ksem_timedwait.S _ksem_trywait.S _ksem_unlink.S \
    128 		_ksem_wait.S _ksem_open.S \
    129 	lchflags.S lchmod.S lchown.S lfs_bmapv.S lfs_markv.S lfs_segclean.S \
    130 		lpathconf.S \
    131 		__lfs_segwait50.S link.S linkat.S listen.S __lstat50.S \
    132 		__lutimes50.S _lwp_create.S _lwp_exit.S _lwp_kill.S \
    133 		___lwp_park60.S _lwp_self.S _lwp_wait.S _lwp_unpark.S \
    134 		_lwp_unpark_all.S _lwp_suspend.S _lwp_continue.S \
    135 		_lwp_wakeup.S _lwp_detach.S _lwp_setprivate.S \
    136 		_lwp_setname.S _lwp_getname.S _lwp_ctl.S \
    137 	madvise.S memfd_create.S mincore.S minherit.S mkdir.S mkdirat.S \
    138 		mkfifo.S mkfifoat.S \
    139 		__mknod50.S mlock.S mlockall.S modctl.S __mount50.S \
    140 		mprotect.S __msgctl50.S msgget.S munlock.S munlockall.S \
    141 		munmap.S \
    142 	nfssvc.S __ntp_gettime50.S \
    143 	pathconf.S pipe2.S \
    144 		__posix_chown.S __posix_fchown.S __posix_lchown.S \
    145 		__posix_rename.S profil.S \
    146 	__quotactl.S \
    147 	rasctl.S readlinkat.S reboot.S \
    148 		rename.S renameat.S revoke.S rmdir.S \
    149 	semconfig.S semget.S semop.S semtimedop.S \
    150 		setegid.S seteuid.S \
    151 		setgid.S setgroups.S __setitimer50.S __setlogin.S setpgid.S \
    152 		setpriority.S \
    153 		setregid.S setreuid.S setrlimit.S setsid.S setsockopt.S \
    154 		setuid.S __shmctl50.S shmdt.S shmget.S shutdown.S \
    155 		sigqueueinfo.S \
    156 		__sigaltstack14.S __sigpending14.S __sigaction_sigtramp.S \
    157 		____sigtimedwait50.S __socket30.S socketpair.S __stat50.S \
    158 		__statvfs190.S swapctl.S symlink.S symlinkat.S __sysctl.S \
    159 	timer_create.S timer_delete.S __timer_gettime50.S timer_getoverrun.S \
    160 		____semctl50.S __timer_settime50.S \
    161 	timerfd_create.S timerfd_gettime.S timerfd_settime.S \
    162 	umask.S undelete.S unlink.S unlinkat.S unmount.S __utimes50.S \
    163 		utimensat.S utrace.S uuidgen.S
    164 
    165 # sa compat syscalls
    166 SAASM+=	sa_register.S sa_stacks.S sa_enable.S sa_setconcurrency.S sa_yield.S \
    167 		sa_preempt.S
    168 
    169 # modules with potentially non default implementations
    170 ASM_MD=	_lwp_getprivate.S mremap.S
    171 
    172 .for f in ${ASM_MD}
    173 . if !exists(${f})
    174    ASM+=	tmp_${f}
    175 . else
    176    SRCS+=	${f}
    177 . endif
    178 .endfor
    179 
    180 WEAKASM= accept.S __aio_suspend50.S clock_nanosleep.S close.S connect.S \
    181 	execve.S \
    182 	fcntl.S fdatasync.S fsync.S \
    183 	fsync_range.S __kevent100.S \
    184 	kill.S mq_receive.S mq_send.S __mq_timedreceive50.S __mq_timedsend50.S \
    185 	msgrcv.S msgsnd.S __msync13.S  __nanosleep50.S open.S openat.S \
    186 	paccept.S poll.S \
    187 	__pollts50.S __pselect50.S read.S readlink.S \
    188 	readv.S recvfrom.S recvmmsg.S recvmsg.S \
    189 	_sched_setparam.S _sched_getparam.S _sched_setaffinity.S \
    190 	_sched_getaffinity.S sched_yield.S _sched_protect.S \
    191 	__select50.S sendmmsg.S sendmsg.S sendto.S \
    192 	setcontext.S __sigprocmask14.S __sigsuspend14.S sysarch.S \
    193 	__wait450.S wait6.S write.S writev.S
    194 
    195 NOERR=	getegid.S geteuid.S getgid.S getpid.S getppid.S getuid.S \
    196 	issetugid.S posix_spawn.S sync.S __posix_fadvise50.S
    197 
    198 PSEUDONOERR=	_exit.S
    199 
    200 _GENFILES=	${ASM} ${WEAKASM} ${NOERR} ${PSEUDONOERR} \
    201 	${ASM_GLUE} ${ASM_GLUENOERR}
    202 
    203 SRCS+=		${_GENFILES}
    204 CLEANFILES+=	${_GENFILES}
    205 
    206 ASMDEPS=	${.CURDIR}/sys/Makefile.inc ${ARCHDIR}/SYS.h \
    207 		${DESTDIR}/usr/include/sys/syscall.h
    208 
    209 _LINTASM=	${ASM:Nsa_*.S} ${WEAKASM:Nsa_*.S}
    210 .endif # RUMPRUN != yes
    211 
    212 ${ASM}: ${ASMDEPS}
    213 	${_MKTARGET_CREATE}
    214 	printf '#include "SYS.h"\nRSYSCALL(${.PREFIX:S/tmp_//})\n' >${.TARGET}
    215 
    216 ${ASM_GLUE}: ${ASMDEPS}
    217 	${_MKTARGET_CREATE}
    218 	printf '#include "SYS.h"\nPSEUDO(${.PREFIX:S/tmp_/__/},${.PREFIX:S/tmp_//})\n' >${.TARGET}
    219 
    220 ${ASM_GLUENOERR}: ${ASMDEPS}
    221 	${_MKTARGET_CREATE}
    222 	printf '#include "SYS.h"\nPSEUDO_NOERROR(${.PREFIX:S/tmp_/__/},${.PREFIX:S/tmp_//})\n' >${.TARGET}
    223 
    224 ${WEAKASM}: ${ASMDEPS}
    225 	${_MKTARGET_CREATE}
    226 	printf '#include "SYS.h"\nWSYSCALL(${.PREFIX},_sys_${.PREFIX})\nWEAK_ALIAS(_${.PREFIX},_sys_${.PREFIX})\n' >${.TARGET}
    227 
    228 ${SAASM}: ${ASMDEPS}
    229 	${_MKTARGET_CREATE}
    230 	printf '#include "SYS.h"\n_SYSCALL(${.PREFIX:S/tmp_//},${.PREFIX:S/tmp_//:S/sa_/compat_60_sa_/})\n' >${.TARGET}
    231 
    232 ${NOERR}: ${ASMDEPS}
    233 	${_MKTARGET_CREATE}
    234 	printf '#include "SYS.h"\nRSYSCALL_NOERROR(${.PREFIX})\n' >${.TARGET}
    235 
    236 ${PSEUDONOERR}: ${ASMDEPS}
    237 	${_MKTARGET_CREATE}
    238 	printf '#include "SYS.h"\nPSEUDO_NOERROR(${.PREFIX},${.PREFIX:S/_//})\n' >${.TARGET}
    239 	# add an _Exit alias to _exit
    240 	printf 'STRONG_ALIAS(${.PREFIX:S/e/E/},${.PREFIX})\n' >>${.TARGET}
    241 
    242 LintSysNormal.c: ${LIBCDIR}/sys/makelintstub \
    243     ${DESTDIR}/usr/include/sys/syscall.h ${_LINTASM}
    244 	${_MKTARGET_CREATE}
    245 	CPP=${CPP:Q} ${HOST_SH} ${LIBCDIR}/sys/makelintstub -o ${.TARGET} \
    246 	    -s ${DESTDIR}/usr/include/sys/syscall.h ${_LINTASM:S/tmp_//}
    247 
    248 LintSysNoerr.c: ${LIBCDIR}/sys/makelintstub \
    249     ${DESTDIR}/usr/include/sys/syscall.h
    250 	${_MKTARGET_CREATE}
    251 	CPP=${CPP:Q} ${HOST_SH} ${LIBCDIR}/sys/makelintstub -o ${.TARGET} -n \
    252 	    -s ${DESTDIR}/usr/include/sys/syscall.h ${NOERR}
    253 
    254 LintSysPseudoNoerr.c: ${LIBCDIR}/sys/makelintstub \
    255     ${DESTDIR}/usr/include/sys/syscall.h
    256 	${_MKTARGET_CREATE}
    257 	CPP=${CPP:Q} ${HOST_SH} ${LIBCDIR}/sys/makelintstub -o ${.TARGET} -p \
    258 	    -s ${DESTDIR}/usr/include/sys/syscall.h ${PSEUDONOERR}
    259 
    260 MAN+=	accept.2 access.2 acct.2 adjtime.2 bind.2 brk.2 chdir.2 \
    261 	chflags.2 chmod.2 chown.2 chroot.2 clock_getcpuclockid2.2 \
    262 	clock_settime.2 clone.2 close.2 \
    263 	connect.2 dup.2 eventfd.2 execve.2 _exit.2 extattr_get_file.2 \
    264 	fcntl.2 fdatasync.2 fdiscard.2 fhopen.2 \
    265 	flock.2 fork.2 fsync.2 getcontext.2 getdents.2 \
    266 	getfh.2 getvfsstat.2 getgid.2 getgroups.2 \
    267 	getitimer.2 getlogin.2 getpeername.2 getpgrp.2 getpid.2 \
    268 	getpriority.2 getrandom.2 getrlimit.2 getrusage.2 getsid.2 \
    269 	getsockname.2 getsockopt.2 gettimeofday.2 getuid.2\
    270 	intro.2 ioctl.2 issetugid.2 \
    271 	kill.2 kqueue.2 ktrace.2 _ksem.2 \
    272 	lfs_bmapv.2 lfs_markv.2 lfs_segclean.2 lfs_segwait.2 \
    273 	link.2 listen.2 lseek.2 \
    274 	_lwp_create.2 _lwp_ctl.2 _lwp_detach.2 _lwp_exit.2 \
    275 	_lwp_self.2 _lwp_setname.2 \
    276 	_lwp_suspend.2 _lwp_wakeup.2 _lwp_wait.2 _lwp_kill.2 \
    277 	_lwp_getname.2 _lwp_getprivate.2 \
    278 	_lwp_park.2 _lwp_unpark.2 _lwp_unpark_all.2 \
    279 	memfd_create.2 mkdir.2 mkfifo.2 mknod.2 \
    280 	madvise.2 mincore.2 minherit.2 mlock.2 mlockall.2 mmap.2 modctl.2 \
    281 	mount.2 \
    282 	mprotect.2 mremap.2 msgctl.2 msgget.2 msgrcv.2 msgsnd.2 msync.2 \
    283 	munmap.2 nanosleep.2 nfssvc.2 ntp_adjtime.2 open.2 pathconf.2 pipe.2 \
    284 	poll.2 posix_fadvise.2 \
    285 	profil.2 ptrace.2 __quotactl.2 \
    286 	rasctl.2 read.2 readlink.2 \
    287 	reboot.2 recv.2 rename.2 revoke.2 rmdir.2 \
    288 	select.2 semctl.2 \
    289 	semget.2 semop.2 send.2 setgroups.2 setpgid.2 setregid.2 \
    290 	setreuid.2 setsid.2 setuid.2 shmat.2 shmctl.2 shmget.2 \
    291 	shutdown.2 sigaction.2 sigaltstack.2 sigpending.2 \
    292 	sigprocmask.2 sigqueue.2 sigstack.2 sigsuspend.2 sigtimedwait.2 \
    293 	socket.2 \
    294 	socketpair.2 stat.2 statvfs.2 swapctl.2 swapon.3 symlink.2 \
    295 	sync.2 sysarch.2 syscall.2 timer_create.2 timer_delete.2 \
    296 	timer_settime.2 timerfd.2 truncate.2 umask.2 undelete.2 \
    297 	unlink.2 utimes.2 utrace.2 uuidgen.2 vfork.2 wait.2 write.2
    298 
    299 MLINKS+=_exit.2 _Exit.2
    300 MLINKS+=brk.2 sbrk.2
    301 MLINKS+=clone.2 __clone.2
    302 MLINKS+=dup.2 dup2.2
    303 MLINKS+=dup.2 dup3.2
    304 MLINKS+=chdir.2 fchdir.2
    305 MLINKS+=chflags.2 fchflags.2 chflags.2 lchflags.2
    306 MLINKS+=chmod.2 fchmod.2 chmod.2 lchmod.2
    307 MLINKS+=chown.2 fchown.2 chown.2 lchown.2
    308 MLINKS+=chroot.2 fchroot.2
    309 MLINKS+=clock_settime.2 clock_gettime.2
    310 MLINKS+=clock_settime.2 clock_getres.2
    311 MLINKS+=eventfd.2 eventfd_read.2 \
    312 	eventfd.2 eventfd_write.2
    313 MLINKS+=extattr_get_file.2 extattr_set_file.2 \
    314 	extattr_get_file.2 extattr_delete_file.2 \
    315 	extattr_get_file.2 extattr_list_file.2 \
    316 	extattr_get_file.2 extattr_get_fd.2 \
    317 	extattr_get_file.2 extattr_set_fd.2 \
    318 	extattr_get_file.2 extattr_delete_fd.2 \
    319 	extattr_get_file.2 extattr_list_fd.2 \
    320 	extattr_get_file.2 extattr_get_link.2 \
    321 	extattr_get_file.2 extattr_set_link.2 \
    322 	extattr_get_file.2 extattr_delete_link.2 \
    323 	extattr_get_file.2 extattr_list_link.2
    324 MLINKS+=access.2 faccessat.2
    325 MLINKS+=chmod.2 fchmodat.2
    326 MLINKS+=chown.2 fchownat.2
    327 MLINKS+=execve.2 fexecve.2
    328 MLINKS+=fdiscard.2 posix_fallocate.2
    329 MLINKS+=fhopen.2 fhstat.2 fhopen.2 fhstatvfs.2 fhopen.2 fhstatvfs1.2
    330 MLINKS+=stat.2 fstatat.2
    331 MLINKS+=fsync.2 fsync_range.2
    332 MLINKS+=getcontext.2 setcontext.2
    333 MLINKS+=getgid.2 getegid.2
    334 MLINKS+=getitimer.2 setitimer.2
    335 MLINKS+=getlogin.2 setlogin.2
    336 MLINKS+=getlogin.2 getlogin_r.2
    337 MLINKS+=getpgrp.2 getpgid.2
    338 MLINKS+=getpid.2 getppid.2
    339 MLINKS+=getpriority.2 setpriority.2
    340 MLINKS+=getrlimit.2 setrlimit.2
    341 MLINKS+=getsockopt.2 getsockopt2.2
    342 MLINKS+=getsockopt.2 setsockopt.2
    343 MLINKS+=gettimeofday.2 settimeofday.2
    344 MLINKS+=getuid.2 geteuid.2
    345 MLINKS+=intro.2 errno.2
    346 MLINKS+=kqueue.2 kevent.2
    347 MLINKS+=kqueue.2 kqueue1.2
    348 MLINKS+=kqueue.2 EV_SET.2
    349 MLINKS+=_ksem.2 _ksem_open.2
    350 MLINKS+=_ksem.2 _ksem_close.2
    351 MLINKS+=_ksem.2 _ksem_init.2
    352 MLINKS+=_ksem.2 _ksem_destroy.2
    353 MLINKS+=_ksem.2 _ksem_getvalue.2
    354 MLINKS+=_ksem.2 _ksem_post.2
    355 MLINKS+=_ksem.2 _ksem_wait.2
    356 MLINKS+=_ksem.2 _ksem_timedwait.2
    357 MLINKS+=_ksem.2 _ksem_trywait.2
    358 MLINKS+=_ksem.2 _ksem_unlink.2
    359 MLINKS+=ktrace.2 fktrace.2
    360 MLINKS+=lseek.2 seek.2
    361 MLINKS+=link.2 linkat.2
    362 MLINKS+=_lwp_suspend.2 _lwp_continue.2
    363 MLINKS+=_lwp_getprivate.2 _lwp_setprivate.2
    364 MLINKS+=madvise.2 posix_madvise.2
    365 MLINKS+=mlock.2 munlock.2
    366 MLINKS+=mlockall.2 munlockall.2
    367 MLINKS+=mkdir.2 mkdirat.2
    368 MLINKS+=mkfifo.2 mkfifoat.2
    369 MLINKS+=mknod.2 mknodat.2
    370 MLINKS+=mount.2 unmount.2
    371 MLINKS+=open.2 openat.2
    372 MLINKS+=ntp_adjtime.2 ntp_gettime.2
    373 MLINKS+=pathconf.2 fpathconf.2
    374 MLINKS+=poll.2 pollts.2 poll.2 ppoll.2
    375 MLINKS+=read.2 readv.2 read.2 pread.2 read.2 preadv.2
    376 MLINKS+=readlink.2 readlinkat.2
    377 MLINKS+=recv.2 recvfrom.2 recv.2 recvmsg.2 recv.2 recvmmsg.2
    378 MLINKS+=rename.2 renameat.2
    379 MLINKS+=select.2 pselect.2
    380 MLINKS+=send.2 sendmsg.2 send.2 sendto.2 send.2 sendmmsg.2
    381 MLINKS+=setpgid.2 setpgrp.2
    382 MLINKS+=setuid.2 setegid.2 setuid.2 seteuid.2 setuid.2 setgid.2
    383 MLINKS+=shmat.2 shmdt.2
    384 MLINKS+=symlink.2 symlinkat.2
    385 MLINKS+=timer_settime.2 timer_gettime.2 timer_settime.2 timer_getoverrun.2
    386 MLINKS+=semop.2 semtimedop.2
    387 MLINKS+=sigqueue.2 sigqueueinfo.2
    388 MLINKS+=sigtimedwait.2 sigwaitinfo.2
    389 MLINKS+=sigtimedwait.2 sigwait.2
    390 MLINKS+=stat.2 fstat.2 stat.2 lstat.2
    391 MLINKS+=statvfs.2 fstatvfs.2
    392 MLINKS+=statvfs.2 statvfs1.2
    393 MLINKS+=statvfs.2 fstatvfs1.2
    394 MLINKS+=syscall.2 __syscall.2
    395 MLINKS+=timerfd.2 timerfd_create.2 \
    396 	timerfd.2 timerfd_gettime.2 \
    397 	timerfd.2 timerfd_settime.2
    398 MLINKS+=truncate.2 ftruncate.2
    399 MLINKS+=unlink.2 unlinkat.2
    400 MLINKS+=utimes.2 futimes.2 utimes.2 lutimes.2
    401 MLINKS+=utimes.2 utimens.2 utimes.2 futimens.2 utimes.2 lutimens.2
    402 MLINKS+=utimes.2 utimensat.2
    403 MLINKS+=wait.2 wait3.2 wait.2 wait4.2 wait.2 waitpid.2
    404 MLINKS+=wait.2 wait6.2 wait.2 waitid.2
    405 MLINKS+=write.2 writev.2 write.2 pwrite.2 write.2 pwritev.2
    406 MLINKS+=pipe.2 pipe2.2
    407 MLINKS+=accept.2 paccept.2 accept.2 accept4.2
    408 MLINKS+=nanosleep.2 clock_nanosleep.2
    409 MLINKS+=clock_getcpuclockid2.2 clock_getcpuclockid.2
    410