Makefile revision 1.25
11.25Sriastrad# $NetBSD: Makefile,v 1.25 2025/04/16 02:16:53 riastradh Exp $
21.1Spooka#
31.1Spooka
41.3SskrllNOMAN=		# defined
51.3Sskrll
61.1Spooka.include <bsd.own.mk>
71.1Spooka
81.6Smrg.if ${MKPIC} != "no"
91.6Smrg
101.9SjoergSUBDIR+=	helper_dso1 helper_dso3 .WAIT helper_dso2 .WAIT \
111.8Sjoerg		helper_ifunc_dso \
121.5Snonaka		helper_symver_dso0 .WAIT helper_symver_dso1 .WAIT \
131.5Snonaka		helper_symver_dso2 .WAIT \
141.5Snonaka		data
151.4Sjoerg
161.16SriastradSUBDIR+=	helper_def_dynamic
171.13SriastradSUBDIR+=	helper_def_static
181.18SriastradSUBDIR+=	helper_onlydef
191.14SriastradSUBDIR+=	.WAIT
201.17SriastradSUBDIR+=	helper_abuse_dynamic
211.17SriastradSUBDIR+=	helper_abuse_static
221.19SriastradSUBDIR+=	helper_onlyctor_dynamic
231.18SriastradSUBDIR+=	helper_onlyuse_dynamic
241.18SriastradSUBDIR+=	helper_onlyuse_static
251.16SriastradSUBDIR+=	helper_use_dynamic
261.13SriastradSUBDIR+=	helper_use_static
271.13Sriastrad
281.1SpookaTESTSDIR=	${TESTSBASE}/libexec/ld.elf_so
291.1Spooka
301.8SjoergTESTS_C+=	t_dlerror-cleared t_dlerror-false t_dlinfo t_dlvsym t_ifunc
311.22SriastradTESTS_C+=	t_ifunc_now
321.22SriastradTESTS_C+=	t_ifunc_norelro
331.22SriastradTESTS_C+=	t_ifunc_norelro_now
341.11SkamilTESTS_C+=	t_rtld_r_debug
351.25SriastradTESTS_C+=	t_rtld_r_debug_nopie
361.13SriastradTESTS_C+=	t_tls_extern
371.21SriastradTESTS_C+=	t_hash
381.21Sriastrad
391.22SriastradSRCS.t_ifunc_now=		t_ifunc.c
401.22SriastradSRCS.t_ifunc_norelro=		t_ifunc.c
411.22SriastradSRCS.t_ifunc_norelro_now=	t_ifunc.c
421.22Sriastrad
431.23SriastradLDADD.t_ifunc+=			${${MKRELRO} != "no":?-Wl,-z,relro:}
441.23SriastradLDADD.t_ifunc_now+=		${${MKRELRO} != "no":?-Wl,-z,relro:} -Wl,-z,now
451.24SriastradLDADD.t_ifunc_norelro+=		${${MKRELRO} != "no":?-Wl,-z,norelro:}
461.24SriastradLDADD.t_ifunc_norelro_now+=	${${MKRELRO} != "no":?-Wl,-z,norelro:} -Wl,-z,now
471.22Sriastrad
481.25SriastradSRCS.t_rtld_r_debug_nopie=	t_rtld_r_debug.c
491.25Sriastrad
501.25Sriastrad# If the port doesn't support PIE anyway, well, no big deal, we have
511.25Sriastrad# two copies of the same tiny test.
521.25SriastradLDADD.t_rtld_r_debug_nopie+=	-Wl,-no-pie
531.25Sriastrad
541.21Sriastrad.PATH:	${NETBSDSRCDIR}/libexec/ld.elf_so
551.21SriastradSRCS.t_hash+=	t_hash.c
561.21SriastradSRCS.t_hash+=	hash.c
571.21SriastradCPPFLAGS.t_hash.c+=	-I${NETBSDSRCDIR}/libexec/ld.elf_so
581.11Skamil
591.20SlukemCOPTS.t_rtld_r_debug.c += ${CC_WNO_MAYBE_UNINITIALIZED}
601.2Sskrll
611.2SskrllLDADD.t_dlerror-false=	-Wl,-rpath,/var/nonexistent/lib
621.5SnonakaLDADD.t_dlvsym=		-Wl,-rpath,${TESTSDIR}/h_helper_symver_dso2
631.22Sriastrad.for t in t_ifunc t_ifunc_now t_ifunc_norelro t_ifunc_norelro_now
641.22SriastradLDADD.${t}+=		-Wl,-rpath,${TESTSDIR} -lutil
651.22SriastradDPADD.${t}+=		${LIBUTIL}
661.22Sriastrad.endfor
671.13SriastradLDADD.t_tls_extern+=	-Wl,-rpath,${TESTSDIR}
681.1Spooka
691.9SjoergTESTS_SH+=		t_df_1_noopen t_dl_symver t_thread_local_dtor
701.3Sskrll
711.3SskrllBINDIR=			${TESTSDIR}
721.3SskrllPROGS+=			h_df_1_noopen1
731.3SskrllSRCS.h_df_1_noopen1=	h_df_1_noopen.c
741.3Sskrll
751.3SskrllPROGS+=			h_df_1_noopen2
761.3SskrllSRCS.h_df_1_noopen2=	h_df_1_noopen.c
771.3SskrllLDADD.h_df_1_noopen2=	-lpthread
781.3Sskrll
791.9SjoergPROGS+=			h_thread_local_dtor
801.9SjoergLDADD.h_thread_local_dtor=	-Wl,-rpath,${TESTSDIR}  -lpthread
811.9Sjoerg
821.8SjoergPROGS+=			h_ifunc
831.8SjoergSRCS.h_ifunc=		h_ifunc.c
841.8SjoergIFUNCDIR!=		cd ${.CURDIR}/helper_ifunc_dso && ${PRINTOBJDIR}
851.8SjoergLDADD.h_ifunc=		-Wl,-rpath,${TESTSDIR} -L${IFUNCDIR} -lh_helper_ifunc_dso
861.8Sjoerg
871.4SjoergPROGS+=			h_locking
881.4SjoergSRCS.h_locking=		h_locking.c
891.4SjoergLDADD.h_locking=	-lpthread -Wl,--export-dynamic -Wl,-rpath,${TESTSDIR}
901.4Sjoerg
911.5SnonakaPROGS+=			h_dl_symver_v0
921.5SnonakaSRCS.h_dl_symver_v0=	h_dl_symver.c
931.5SnonakaV0ODIR!=		cd ${.CURDIR}/helper_symver_dso0 && ${PRINTOBJDIR}
941.5SnonakaLDADD.h_dl_symver_v0=	-L${V0ODIR} -lh_helper_symver_dso
951.5Snonaka
961.5SnonakaPROGS+=			h_dl_symver_v1
971.5SnonakaSRCS.h_dl_symver_v1=	h_dl_symver.c
981.5SnonakaV1ODIR!=		cd ${.CURDIR}/helper_symver_dso1 && ${PRINTOBJDIR}
991.5SnonakaLDADD.h_dl_symver_v1=	-L${V1ODIR} -lh_helper_symver_dso
1001.5Snonaka
1011.5SnonakaPROGS+=			h_dl_symver_v2
1021.5SnonakaSRCS.h_dl_symver_v2=	h_dl_symver.c
1031.5SnonakaV2ODIR!=		cd ${.CURDIR}/helper_symver_dso2 && ${PRINTOBJDIR}
1041.5SnonakaLDADD.h_dl_symver_v2=	-L${V2ODIR} -lh_helper_symver_dso
1051.5Snonaka
1061.7Smrg.include <bsd.test.mk>
1071.7Smrg
1081.7Smrg.else
1091.7Smrg
1101.7SmrgNOPROG=	# defined
1111.7Smrg.include <bsd.prog.mk>
1121.7Smrg
1131.6Smrg.endif
114