Makefile.inc revision 1.124
1#	$OpenBSD: Makefile.inc,v 1.124 2014/12/08 20:56:11 guenther Exp $
2#	$NetBSD: Makefile.inc,v 1.35 1995/10/16 23:49:07 jtc Exp $
3#	@(#)Makefile.inc	8.1 (Berkeley) 6/17/93
4
5# sys sources
6.PATH: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/sys ${LIBCSRCDIR}/sys
7
8# modules with non-default implementations on at least one architecture:
9SRCS+=	Ovfork.S brk.S cerror.S exect.S fork.S \
10	sbrk.S sigpending.S sigprocmask.S sigreturn.S \
11	sigsuspend.S syscall.S tfork_thread.S
12
13# glue to offer userland wrappers for some syscalls
14SRCS+=	posix_madvise.c
15
16# glue to provide compatibility between GCC 1.X and 2.X and for compat
17# with old syscall interfaces.
18SRCS+=	ftruncate.c lseek.c mquery.c mmap.c ptrace.c semctl.c truncate.c \
19	timer_create.c timer_delete.c timer_getoverrun.c timer_gettime.c \
20	timer_settime.c pread.c preadv.c pwrite.c pwritev.c
21
22# stack protector helper functions
23SRCS+=	stack_protector.c
24
25# modules with default implementations on all architectures, unless overridden
26# below:
27ASM=	__get_tcb.o __getcwd.o __semctl.o __set_tcb.o __syscall.o \
28	__sysctl.o __threxit.o __thrsigdivert.o __thrsleep.o \
29	__thrwakeup.o accept.o accept4.o access.o acct.o adjfreq.o adjtime.o \
30	bind.o chdir.o chflags.o chflagsat.o chmod.o chown.o chroot.o \
31	clock_getres.o clock_gettime.o clock_settime.o close.o \
32	closefrom.o connect.o dup.o dup2.o dup3.o execve.o faccessat.o \
33	fchdir.o fchflags.o fchmod.o fchmodat.o fchown.o \
34	fchownat.o fcntl.o fhopen.o fhstat.o fhstatfs.o \
35	flock.o fpathconf.o fstat.o fstatat.o fstatfs.o \
36	fsync.o futimens.o futimes.o getentropy.o getdents.o getdtablecount.o \
37	getegid.o geteuid.o getfh.o getfsstat.o getgid.o \
38	getgroups.o getitimer.o getpeername.o getpgid.o getpgrp.o \
39	getpid.o getppid.o getpriority.o getresgid.o getresuid.o \
40	getrlimit.o getrtable.o getrusage.o getsid.o getsockname.o \
41	getsockopt.o getthrid.o gettimeofday.o getuid.o ioctl.o \
42	issetugid.o kevent.o kill.o kqueue.o ktrace.o lchown.o \
43	link.o linkat.o listen.o lstat.o madvise.o mincore.o \
44	minherit.o mkdir.o mkdirat.o mkfifo.o mkfifoat.o \
45	mknod.o mknodat.o mlock.o mlockall.o mount.o mprotect.o \
46	msgctl.o msgget.o msgrcv.o msgsnd.o msync.o munlock.o \
47	munlockall.o munmap.o nanosleep.o nfssvc.o \
48	open.o openat.o pathconf.o pipe.o pipe2.o \
49	poll.o ppoll.o profil.o pselect.o \
50	quotactl.o read.o readlink.o readlinkat.o readv.o reboot.o \
51	recvfrom.o recvmsg.o rename.o renameat.o revoke.o rmdir.o \
52	sched_yield.o select.o semget.o semop.o sendmsg.o sendsyslog.o sendto.o \
53	setegid.o seteuid.o setgid.o setgroups.o setitimer.o \
54	setpgid.o setpriority.o setregid.o setresgid.o setresuid.o \
55	setreuid.o setrlimit.o setrtable.o setsid.o setsockopt.o \
56	settimeofday.o setuid.o shmat.o shmctl.o shmdt.o \
57	shmget.o shutdown.o sigaction.o sigaltstack.o socket.o \
58	socketpair.o stat.o statfs.o swapctl.o symlink.o \
59	symlinkat.o sync.o sysarch.o umask.o unlink.o unlinkat.o \
60	unmount.o utimensat.o utimes.o utrace.o wait4.o write.o writev.o
61
62SRCS+=	${SRCS_${MACHINE_CPU}}
63.for i in ${SRCS_${MACHINE_CPU}}
64ASM:=	${ASM:N${i:R}.o}
65.endfor
66
67GASM=	${ASM:.o=.go}
68PASM=	${ASM:.o=.po}
69SASM=	${ASM:.o=.so}
70DASM=	${ASM:.o=.do}
71
72PSEUDO=	_getlogin.o _setlogin.o _ptrace.o
73GPSEUDO=${PSEUDO:.o=.go}
74PPSEUDO=${PSEUDO:.o=.po}
75SPSEUDO=${PSEUDO:.o=.so}
76DPSEUDO=${PSEUDO:.o=.do}
77
78PSEUDO_NOERR=	_exit.o
79GPSEUDO_NOERR=${PSEUDO_NOERR:.o=.go}
80PPSEUDO_NOERR=${PSEUDO_NOERR:.o=.po}
81SPSEUDO_NOERR=${PSEUDO_NOERR:.o=.so}
82DPSEUDO_NOERR=${PSEUDO_NOERR:.o=.do}
83
84OBJS+=	${ASM} ${PSEUDO} ${PSEUDO_NOERR}
85
86${GASM}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
87	@echo creating ${.TARGET}
88	@printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' | \
89	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
90	    -o ${.TARGET}.o
91	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
92	@rm -f ${.TARGET}.o
93
94${PASM}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
95	@echo creating ${.TARGET}
96	@printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' | \
97	    ${COMPILE.S} -DPROF ${CFLAGS:M-[ID]*} ${AINC} \
98	    -x assembler-with-cpp - -o ${.TARGET}.o
99	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
100	@rm -f ${.TARGET}.o
101
102${SASM}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
103	@echo creating ${.TARGET}
104	@printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' | \
105	    ${COMPILE.S} ${PICFLAG} ${CFLAGS:M-[ID]*} ${AINC} \
106	    -x assembler-with-cpp - -o ${.TARGET}
107
108${DASM}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
109	@echo creating ${.TARGET}
110	@printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' | \
111	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
112	     ${DIST_CFLAGS} -o ${.TARGET}.o
113	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
114	@rm -f ${.TARGET}.o
115
116${ASM}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
117	@echo creating ${.TARGET}
118	@printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' | \
119	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
120	     -o ${.TARGET}.o
121	@${LD} -x -r ${.TARGET}.o -o ${.TARGET}
122	@rm -f ${.TARGET}.o
123
124${GPSEUDO}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
125	@echo creating ${.TARGET}
126	@printf '#include "SYS.h"\nPSEUDO(${.PREFIX},${.PREFIX:S/_//})\n' | \
127	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
128	    -o ${.TARGET}.o
129	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
130	@rm -f ${.TARGET}.o
131
132${PPSEUDO}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
133	@echo creating ${.TARGET}
134	@printf '#include "SYS.h"\nPSEUDO(${.PREFIX},${.PREFIX:S/_//})\n' | \
135	    ${COMPILE.S} -DPROF ${CFLAGS:M-[ID]*} ${AINC} \
136	    -x assembler-with-cpp - -o ${.TARGET}.o
137	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
138	@rm -f ${.TARGET}.o
139
140${SPSEUDO}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
141	@echo creating ${.TARGET}
142	@printf '#include "SYS.h"\nPSEUDO(${.PREFIX},${.PREFIX:S/_//})\n' | \
143	    ${COMPILE.S} ${PICFLAG} ${CFLAGS:M-[ID]*} ${AINC} \
144	    -x assembler-with-cpp - -o ${.TARGET}
145
146${DPSEUDO}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
147	@echo creating ${.TARGET}
148	@printf '#include "SYS.h"\nPSEUDO(${.PREFIX},${.PREFIX:S/_//})\n' | \
149	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
150	    ${DIST_CFLAGS} -o ${.TARGET}.o
151	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
152	@rm -f ${.TARGET}.o
153
154${PSEUDO}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
155	@echo creating ${.TARGET}
156	@printf '#include "SYS.h"\nPSEUDO(${.PREFIX},${.PREFIX:S/_//})\n' | \
157	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
158	    -o ${.TARGET}.o
159	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
160	@rm -f ${.TARGET}.o
161
162${GPSEUDO_NOERR}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
163	@echo creating ${.TARGET}
164	@printf '#include "SYS.h"\nPSEUDO_NOERROR(${.PREFIX},${.PREFIX:S/_//})\n' | \
165	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
166	    -o ${.TARGET}.o
167	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
168	@rm -f ${.TARGET}.o
169
170${PPSEUDO_NOERR}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
171	@echo creating ${.TARGET}
172	@printf '#include "SYS.h"\nPSEUDO_NOERROR(${.PREFIX},${.PREFIX:S/_//})\n' | \
173	    ${COMPILE.S} -DPROF ${CFLAGS:M-[ID]*} ${AINC} \
174	    -x assembler-with-cpp - -o ${.TARGET}.o
175	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
176	@rm -f ${.TARGET}.o
177
178${SPSEUDO_NOERR}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
179	@echo creating ${.TARGET}
180	@printf '#include "SYS.h"\nPSEUDO_NOERROR(${.PREFIX},${.PREFIX:S/_//})\n' | \
181	    ${COMPILE.S} ${PICFLAG} ${CFLAGS:M-[ID]*} ${AINC} \
182	    -x assembler-with-cpp - -o ${.TARGET}
183
184${DPSEUDO_NOERR}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
185	@echo creating ${.TARGET}
186	@printf '#include "SYS.h"\nPSEUDO_NOERROR(${.PREFIX},${.PREFIX:S/_//})\n' | \
187	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
188	    ${DIST_CFLAGS} -o ${.TARGET}.o
189	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
190	@rm -f ${.TARGET}.o
191
192${PSEUDO_NOERR}: ${LIBCSRCDIR}/arch/${MACHINE_CPU}/SYS.h /usr/include/sys/syscall.h
193	@echo creating ${.TARGET}
194	@printf '#include "SYS.h"\nPSEUDO_NOERROR(${.PREFIX},${.PREFIX:S/_//})\n' | \
195	    ${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} -x assembler-with-cpp - \
196	    -o ${.TARGET}.o
197	@${LD} -X -r ${.TARGET}.o -o ${.TARGET}
198	@rm -f ${.TARGET}.o
199
200MAN+=	__get_tcb.2 __thrsigdivert.2 __thrsleep.2 _exit.2 accept.2 \
201	access.2 acct.2 adjfreq.2 adjtime.2 bind.2 brk.2 chdir.2 \
202	chflags.2 chmod.2 chown.2 chroot.2 clock_gettime.2 close.2 \
203	closefrom.2 connect.2 dup.2 execve.2 fcntl.2 fhopen.2 flock.2 \
204	fork.2 fsync.2 getentropy.2 getdents.2 getdtablecount.2 \
205	getfh.2 getfsstat.2 getgid.2 getgroups.2 getitimer.2 getlogin.2 \
206	getpeername.2 getpgrp.2 getpid.2 getpriority.2 getrlimit.2 \
207	getrtable.2 getrusage.2 getsid.2 getsockname.2 getsockopt.2 \
208	getthrid.2 gettimeofday.2 getuid.2 intro.2 ioctl.2 issetugid.2 \
209	kill.2 kqueue.2 ktrace.2 link.2 listen.2 lseek.2 madvise.2 \
210	mincore.2 minherit.2 mkdir.2 mkfifo.2 mknod.2 mlock.2 \
211	mlockall.2 mmap.2 mount.2 mprotect.2 mquery.2 msgctl.2 \
212	msgget.2 msgrcv.2 msgsnd.2 msync.2 munmap.2 nanosleep.2 \
213	nfssvc.2 open.2 pathconf.2 pipe.2 poll.2 profil.2 \
214	ptrace.2 quotactl.2 read.2 readlink.2 reboot.2 recv.2 \
215	rename.2 revoke.2 rmdir.2 sched_yield.2 select.2 semctl.2 semget.2 \
216	semop.2 send.2 setgroups.2 setpgid.2 setregid.2 \
217	setresuid.2 setreuid.2 setsid.2 sendsyslog.2 setuid.2 shmat.2 \
218	shmctl.2 shmget.2 shutdown.2 sigaction.2 sigaltstack.2 sigpending.2 \
219	sigprocmask.2 sigreturn.2 sigsuspend.2 socket.2 \
220	socketpair.2 stat.2 statfs.2 swapctl.2 symlink.2 \
221	sync.2 sysarch.2 syscall.2 truncate.2 umask.2 unlink.2 \
222	utimes.2 utrace.2 vfork.2 wait.2 write.2
223
224MLINKS+=__get_tcb.2 __set_tcb.2
225MLINKS+=__thrsleep.2 __thrwakeup.2
226MLINKS+=_exit.2 _Exit.2
227MLINKS+=accept.2 accept4.2
228MLINKS+=access.2 faccessat.2
229MLINKS+=brk.2 sbrk.2
230MLINKS+=chdir.2 fchdir.2
231MLINKS+=chflags.2 chflagsat.2 chflags.2 fchflags.2
232MLINKS+=chmod.2 fchmod.2 chmod.2 fchmodat.2
233MLINKS+=chown.2 fchown.2 chown.2 fchownat.2 chown.2 lchown.2
234MLINKS+=clock_gettime.2 clock_getres.2
235MLINKS+=clock_gettime.2 clock_settime.2
236MLINKS+=dup.2 dup2.2
237MLINKS+=dup.2 dup3.2
238MLINKS+=execve.2 exect.2
239MLINKS+=fhopen.2 fhstat.2 fhopen.2 fhstatfs.2
240MLINKS+=fsync.2 fdatasync.2
241MLINKS+=getgid.2 getegid.2
242MLINKS+=getitimer.2 setitimer.2
243MLINKS+=getitimer.2 timeradd.3
244MLINKS+=getitimer.2 timerclear.3
245MLINKS+=getitimer.2 timercmp.3
246MLINKS+=getitimer.2 timerisset.3
247MLINKS+=getitimer.2 timersub.3
248MLINKS+=getlogin.2 getlogin_r.2 getlogin.2 setlogin.2
249MLINKS+=getpgrp.2 getpgid.2
250MLINKS+=getpid.2 getppid.2
251MLINKS+=getpriority.2 setpriority.2
252MLINKS+=getrlimit.2 setrlimit.2
253MLINKS+=getrtable.2 setrtable.2
254MLINKS+=getsockopt.2 setsockopt.2
255MLINKS+=gettimeofday.2 settimeofday.2
256MLINKS+=getuid.2 geteuid.2
257MLINKS+=intro.2 errno.2
258MLINKS+=kqueue.2 kevent.2 kqueue.2 EV_SET.2
259MLINKS+=link.2 linkat.2
260MLINKS+=madvise.2 posix_madvise.2
261MLINKS+=mkdir.2 mkdirat.2
262MLINKS+=mkfifo.2 mkfifoat.2
263MLINKS+=mknod.2 mknodat.2
264MLINKS+=mlock.2 munlock.2
265MLINKS+=mlockall.2 munlockall.2
266MLINKS+=mount.2 unmount.2
267MLINKS+=open.2 openat.2
268MLINKS+=pathconf.2 fpathconf.2
269MLINKS+=pipe.2 pipe2.2
270MLINKS+=poll.2 ppoll.2
271MLINKS+=read.2 readv.2 read.2 pread.2 read.2 preadv.2
272MLINKS+=readlink.2 readlinkat.2
273MLINKS+=recv.2 recvfrom.2 recv.2 recvmsg.2
274MLINKS+=rename.2 renameat.2
275MLINKS+=select.2 pselect.2
276MLINKS+=select.2 FD_ISSET.3 select.2 FD_ZERO.3
277MLINKS+=select.2 FD_SET.3 select.2 FD_CLR.3
278MLINKS+=send.2 sendmsg.2 send.2 sendto.2
279MLINKS+=setpgid.2 setpgrp.2
280MLINKS+=setresuid.2 getresgid.2 setresuid.2 getresuid.2
281MLINKS+=setresuid.2 setresgid.2
282MLINKS+=setuid.2 setegid.2 setuid.2 seteuid.2 setuid.2 setgid.2
283MLINKS+=shmat.2 shmdt.2
284MLINKS+=stat.2 S_ISBLK.2 stat.2 S_ISCHR.2 stat.2 S_ISDIR.2
285MLINKS+=stat.2 S_ISFIFO.2 stat.2 S_ISLNK.2 stat.2 S_ISREG.2 stat.2 S_ISSOCK.2
286MLINKS+=stat.2 fstat.2 stat.2 fstatat.2 stat.2 lstat.2
287MLINKS+=statfs.2 fstatfs.2
288MLINKS+=symlink.2 symlinkat.2
289MLINKS+=syscall.2 __syscall.2
290MLINKS+=truncate.2 ftruncate.2
291MLINKS+=unlink.2 unlinkat.2
292MLINKS+=utimes.2 futimens.2 utimes.2 futimes.2 utimes.2 utimensat.2
293MLINKS+=wait.2 WEXITSTATUS.2 wait.2 WCOREDUMP.2 wait.2 WSTOPSIG.2
294MLINKS+=wait.2 WIFCONTINUED.2 wait.2 WIFEXITED.2
295MLINKS+=wait.2 WIFSIGNALED.2 wait.2 WIFSTOPPED.2 wait.2 WTERMSIG.2
296MLINKS+=wait.2 wait3.2 wait.2 wait4.2 wait.2 waitpid.2
297MLINKS+=write.2 writev.2 write.2 pwrite.2 write.2 pwritev.2
298