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