Makefile revision 1.25
1# $NetBSD: Makefile,v 1.25 2025/04/16 02:16:53 riastradh Exp $ 2# 3 4NOMAN= # defined 5 6.include <bsd.own.mk> 7 8.if ${MKPIC} != "no" 9 10SUBDIR+= helper_dso1 helper_dso3 .WAIT helper_dso2 .WAIT \ 11 helper_ifunc_dso \ 12 helper_symver_dso0 .WAIT helper_symver_dso1 .WAIT \ 13 helper_symver_dso2 .WAIT \ 14 data 15 16SUBDIR+= helper_def_dynamic 17SUBDIR+= helper_def_static 18SUBDIR+= helper_onlydef 19SUBDIR+= .WAIT 20SUBDIR+= helper_abuse_dynamic 21SUBDIR+= helper_abuse_static 22SUBDIR+= helper_onlyctor_dynamic 23SUBDIR+= helper_onlyuse_dynamic 24SUBDIR+= helper_onlyuse_static 25SUBDIR+= helper_use_dynamic 26SUBDIR+= helper_use_static 27 28TESTSDIR= ${TESTSBASE}/libexec/ld.elf_so 29 30TESTS_C+= t_dlerror-cleared t_dlerror-false t_dlinfo t_dlvsym t_ifunc 31TESTS_C+= t_ifunc_now 32TESTS_C+= t_ifunc_norelro 33TESTS_C+= t_ifunc_norelro_now 34TESTS_C+= t_rtld_r_debug 35TESTS_C+= t_rtld_r_debug_nopie 36TESTS_C+= t_tls_extern 37TESTS_C+= t_hash 38 39SRCS.t_ifunc_now= t_ifunc.c 40SRCS.t_ifunc_norelro= t_ifunc.c 41SRCS.t_ifunc_norelro_now= t_ifunc.c 42 43LDADD.t_ifunc+= ${${MKRELRO} != "no":?-Wl,-z,relro:} 44LDADD.t_ifunc_now+= ${${MKRELRO} != "no":?-Wl,-z,relro:} -Wl,-z,now 45LDADD.t_ifunc_norelro+= ${${MKRELRO} != "no":?-Wl,-z,norelro:} 46LDADD.t_ifunc_norelro_now+= ${${MKRELRO} != "no":?-Wl,-z,norelro:} -Wl,-z,now 47 48SRCS.t_rtld_r_debug_nopie= t_rtld_r_debug.c 49 50# If the port doesn't support PIE anyway, well, no big deal, we have 51# two copies of the same tiny test. 52LDADD.t_rtld_r_debug_nopie+= -Wl,-no-pie 53 54.PATH: ${NETBSDSRCDIR}/libexec/ld.elf_so 55SRCS.t_hash+= t_hash.c 56SRCS.t_hash+= hash.c 57CPPFLAGS.t_hash.c+= -I${NETBSDSRCDIR}/libexec/ld.elf_so 58 59COPTS.t_rtld_r_debug.c += ${CC_WNO_MAYBE_UNINITIALIZED} 60 61LDADD.t_dlerror-false= -Wl,-rpath,/var/nonexistent/lib 62LDADD.t_dlvsym= -Wl,-rpath,${TESTSDIR}/h_helper_symver_dso2 63.for t in t_ifunc t_ifunc_now t_ifunc_norelro t_ifunc_norelro_now 64LDADD.${t}+= -Wl,-rpath,${TESTSDIR} -lutil 65DPADD.${t}+= ${LIBUTIL} 66.endfor 67LDADD.t_tls_extern+= -Wl,-rpath,${TESTSDIR} 68 69TESTS_SH+= t_df_1_noopen t_dl_symver t_thread_local_dtor 70 71BINDIR= ${TESTSDIR} 72PROGS+= h_df_1_noopen1 73SRCS.h_df_1_noopen1= h_df_1_noopen.c 74 75PROGS+= h_df_1_noopen2 76SRCS.h_df_1_noopen2= h_df_1_noopen.c 77LDADD.h_df_1_noopen2= -lpthread 78 79PROGS+= h_thread_local_dtor 80LDADD.h_thread_local_dtor= -Wl,-rpath,${TESTSDIR} -lpthread 81 82PROGS+= h_ifunc 83SRCS.h_ifunc= h_ifunc.c 84IFUNCDIR!= cd ${.CURDIR}/helper_ifunc_dso && ${PRINTOBJDIR} 85LDADD.h_ifunc= -Wl,-rpath,${TESTSDIR} -L${IFUNCDIR} -lh_helper_ifunc_dso 86 87PROGS+= h_locking 88SRCS.h_locking= h_locking.c 89LDADD.h_locking= -lpthread -Wl,--export-dynamic -Wl,-rpath,${TESTSDIR} 90 91PROGS+= h_dl_symver_v0 92SRCS.h_dl_symver_v0= h_dl_symver.c 93V0ODIR!= cd ${.CURDIR}/helper_symver_dso0 && ${PRINTOBJDIR} 94LDADD.h_dl_symver_v0= -L${V0ODIR} -lh_helper_symver_dso 95 96PROGS+= h_dl_symver_v1 97SRCS.h_dl_symver_v1= h_dl_symver.c 98V1ODIR!= cd ${.CURDIR}/helper_symver_dso1 && ${PRINTOBJDIR} 99LDADD.h_dl_symver_v1= -L${V1ODIR} -lh_helper_symver_dso 100 101PROGS+= h_dl_symver_v2 102SRCS.h_dl_symver_v2= h_dl_symver.c 103V2ODIR!= cd ${.CURDIR}/helper_symver_dso2 && ${PRINTOBJDIR} 104LDADD.h_dl_symver_v2= -L${V2ODIR} -lh_helper_symver_dso 105 106.include <bsd.test.mk> 107 108.else 109 110NOPROG= # defined 111.include <bsd.prog.mk> 112 113.endif 114