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