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