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