Makefile revision 1.96
1# $NetBSD: Makefile,v 1.96 2025/07/17 19:50:40 kre Exp $
2
3NOMAN=		# defined
4
5.include <bsd.own.mk>
6
7TESTSDIR=	${TESTSBASE}/kernel
8
9TESTS_SUBDIRS+=	kqueue
10TESTS_C+=	t_cloexec
11TESTS_C+=	t_clofork
12#TESTS_C+=	t_epoll
13TESTS_C+=	t_execregs
14TESTS_C+=	t_fcntl
15.if ${MKRUMP} != "no"
16TESTS_C+=	t_fdrestart
17.endif
18TESTS_C+=	t_kauth_pr_47598
19TESTS_C+=	t_ksem
20TESTS_C+=	t_lock
21TESTS_C+=	t_lockf
22TESTS_C+=	t_memfd_create
23TESTS_C+=	t_mqueue
24TESTS_C+=	t_nanosleep
25TESTS_C+=	t_open_pr_57260
26TESTS_C+=	t_proccwd
27TESTS_C+=	t_pty
28TESTS_C+=	t_semtimedop
29TESTS_C+=	t_signal_and_sp
30TESTS_C+=	t_sysv
31TESTS_C+=	t_subr_prf
32TESTS_C+=	t_sysctl
33TESTS_C+=	t_timeleft
34.if ${MKRUMP} != "no"
35TESTS_C+=	t_unmount
36.endif
37TESTS_C+=	t_zombie
38
39TESTS_SH=	t_fexecve
40TESTS_SH+=	t_fpufork
41TESTS_SH+=	t_interp
42TESTS_SH+=	t_magic_symlinks
43TESTS_SH+=	t_nointerpreter
44TESTS_SH+=	t_origin
45TESTS_SH+=	t_procpath
46TESTS_SH+=	t_ps_strings
47.if ${MKKMOD} != "no"
48TESTS_SH+=	t_setjmp
49.endif
50.if ${MKRUMP} != "no"
51TESTS_SH+=	t_simplehook
52.endif
53TESTS_SH+=	t_trapsignal
54TESTS_SH+=	t_umountstress
55TESTS_SH+=	t_umount
56
57BINDIR=		${TESTSDIR}
58PROGS+=		h_cloexec
59PROGS+=		h_execregs
60PROGS+=		h_execsp_dynamic
61PROGS+=		h_execsp_static
62PROGS+=		h_fexecve
63PROGS+=		h_fpufork
64PROGS+=		h_getprocpath
65PROGS+=		h_ps_strings1
66PROGS+=		h_ps_strings2
67PROGS+=		h_segv
68
69SCRIPTSDIR=	${TESTSDIR}
70SCRIPTS=	h_interpreter.sh
71
72LDADD.t_fdrestart+=	-lpthread
73LDADD.t_fdrestart+=	-lrumpnet_local
74LDADD.t_fdrestart+=	-lrumpnet_net
75LDADD.t_fdrestart+=	-lrumpnet_netinet
76LDADD.t_fdrestart+=	-lrumpnet
77LDADD.t_fdrestart+=	${LIBRUMPBASE}
78
79LDADD.t_mqueue+= -lrt
80
81LDADD.t_unmount+=	-lrumpfs_tmpfs
82LDADD.t_unmount+=	${LIBRUMPBASE}
83
84
85.if (${MKRUMP} != "no") && !defined(BSD_MK_COMPAT_FILE)
86TESTS_SUBDIRS+=	tty
87
88TESTS_C+=	t_extattrctl
89TESTS_C+=	t_filedesc
90TESTS_C+=	t_rnd
91LDADD.t_extattrctl+= ${LIBRUMPBASE}
92LDADD.t_filedesc+=  ${LDADD.t_rnd}
93LDADD.t_rnd+=  -lrumpdev_rnd -lrumpdev ${LIBRUMPBASE}
94
95.endif
96
97LDADD.t_timeleft+=	-lpthread
98
99CPPFLAGS+=	-D_KERNTYPES
100CPPFLAGS.t_unmount.c+=	-D_KMEMUSER -D__EXPOSE_MOUNT
101
102.if exists(${.PARSEDIR}/arch/${MACHINE_ARCH})
103ARCHDIR:=		${.PARSEDIR}/arch/${MACHINE_ARCH}
104.else
105ARCHDIR:=		${.PARSEDIR}/arch/${MACHINE_CPU}
106.endif
107.PATH:			${ARCHDIR}
108
109.if exists(${ARCHDIR}/stack_pointer.h)
110CPPFLAGS.t_signal_and_sp.c+=	-I${ARCHDIR} -DHAVE_STACK_POINTER_H
111.endif
112
113SRCS.t_signal_and_sp+=		t_signal_and_sp.c
114.if exists(${ARCHDIR}/contextspfunc.S)
115CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_CONTEXTSPFUNC
116SRCS.t_signal_and_sp+=		contextspfunc.S
117.endif
118.if exists(${ARCHDIR}/signalsphandler.S)
119CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_SIGNALSPHANDLER
120SRCS.t_signal_and_sp+=		signalsphandler.S
121.endif
122.if exists(${ARCHDIR}/threadspfunc.S)
123CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_THREADSPFUNC
124SRCS.t_signal_and_sp+=		threadspfunc.S
125LDADD.t_signal_and_sp+=		-pthread
126.endif
127
128SRCS.h_execsp_dynamic+=		h_execsp.c
129SRCS.h_execsp_static+=		h_execsp.c
130.if exists(${ARCHDIR}/execsp.S)
131CPPFLAGS.t_signal_and_sp.c+=	-DHAVE_EXECSP
132SRCS.h_execsp_dynamic+=		execsp.S
133SRCS.h_execsp_static+=		execsp.S
134LDFLAGS.h_execsp_dynamic+=	-Wl,-e,execsp_start
135LDFLAGS.h_execsp_static+=	-Wl,-e,execsp_start
136.else
137CPPFLAGS.h_execsp.c+=		-Dexecsp_main=main
138.endif
139LDSTATIC.h_execsp_static=	-static
140
141.if ${MACHINE_CPU} == "mips"
142CPPFLAGS.contextspfunc.S+=	-I${NETBSDSRCDIR}/lib/libc/arch/mips
143CPPFLAGS.execsp.S+=		-I${NETBSDSRCDIR}/lib/libc/arch/mips
144CPPFLAGS.signalsphandler.S+=	-I${NETBSDSRCDIR}/lib/libc/arch/mips
145.endif
146
147.PATH:			${NETBSDSRCDIR}/sys/kern
148TESTS_C+=		t_extent
149SRCS.t_extent=		t_extent.c subr_extent.c
150CPPFLAGS.t_extent.c=	-D_EXTENT_TESTING -D__POOL_EXPOSE -D_KERNTYPES
151CPPFLAGS.subr_extent.c=	-D_EXTENT_TESTING -D__POOL_EXPOSE -D_KERNTYPES
152
153TESTS_C+=		t_time_arith
154SRCS.t_time_arith=	t_time_arith.c subr_time_arith.c
155CPPFLAGS.t_time_arith.c+=	-I${NETBSDSRCDIR}/sys -D_TIME_TESTING
156CPPFLAGS.subr_time_arith.c+=	-I${NETBSDSRCDIR}/sys -D_TIME_TESTING
157LDADD.t_time_arith+=	-lutil
158
159t_subr_prf.c: gen_t_subr_prf ${NETBSDSRCDIR}/sys/kern/subr_prf.c
160	${HOST_SH} ${.ALLSRC} ${.TARGET}
161.if ${MKSANITIZER:Uno} == "yes"
162	# These symbols will be redefined by MKSANITIZER
163	${TOOL_SED} -i '/undef .*printf/d' ${.TARGET}
164.endif
165
166CPPFLAGS.t_subr_prf.c=	-Wno-pointer-sign	# XXX platform vs kernel SHA2
167
168# Test explicitly tests failure modes.
169CPPFLAGS.t_subr_prf.c+=	${CC_WNO_FORMAT_TRUNCATION}
170
171SANITIZER_RENAME_CLASSES+=		t_subr_prf
172SANITIZER_RENAME_FILES.t_subr_prf+=	t_subr_prf.c
173SANITIZER_RENAME_SYMBOL.t_subr_prf+=	snprintf
174SANITIZER_RENAME_SYMBOL.t_subr_prf+=	vsnprintf
175SANITIZER_RENAME_SYMBOL.t_subr_prf+=	sprintf
176SANITIZER_RENAME_SYMBOL.t_subr_prf+=	vsnprintf
177SANITIZER_RENAME_SYMBOL.t_subr_prf+=	vasprintf
178
179CLEANFILES+=	t_subr_prf.c
180
181LDADD.h_segv+=	-lm
182
183.if exists(arch/${MACHINE_ARCH}/execregs.h)
184CPPFLAGS.t_execregs.c+=	-I${ARCHDIR}
185CPPFLAGS.t_execregs.c+=	-I${.CURDIR}/../lib/libc/gen # isqemu.h
186CPPFLAGS.t_execregs.c+=	-DHAVE_EXECREGS_TEST
187SRCS.t_execregs+=	t_execregs.c
188SRCS.t_execregs+=	execregs.c
189LDSTATIC.h_execregs=	-static
190LDFLAGS.h_execregs+=	-Wl,-e,execregs_start
191.else
192SRCS.h_execregs=	h_execregs_unimpl.c
193.endif
194
195.if ${MKKMOD} != "no"
196SUBDIR+=	setjmp_tester
197.endif
198
199.include <bsd.test.mk>
200