11.35Sriastrad# $NetBSD: Makefile,v 1.35 2025/12/21 19:08:09 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.26SriastradSUBDIR+= helper_dso1 111.26SriastradSUBDIR+= helper_dso3 121.26SriastradSUBDIR+= .WAIT 131.26SriastradSUBDIR+= helper_dso2 141.26SriastradSUBDIR+= .WAIT 151.26SriastradSUBDIR+= helper_ifunc_dso 161.26SriastradSUBDIR+= helper_symver_dso0 171.26SriastradSUBDIR+= .WAIT 181.26SriastradSUBDIR+= helper_symver_dso1 191.26SriastradSUBDIR+= .WAIT 201.26SriastradSUBDIR+= helper_symver_dso2 211.26SriastradSUBDIR+= .WAIT 221.26SriastradSUBDIR+= data 231.4Sjoerg 241.16SriastradSUBDIR+= helper_def_dynamic 251.13SriastradSUBDIR+= helper_def_static 261.18SriastradSUBDIR+= helper_onlydef 271.14SriastradSUBDIR+= .WAIT 281.17SriastradSUBDIR+= helper_abuse_dynamic 291.17SriastradSUBDIR+= helper_abuse_static 301.19SriastradSUBDIR+= helper_onlyctor_dynamic 311.18SriastradSUBDIR+= helper_onlyuse_dynamic 321.18SriastradSUBDIR+= helper_onlyuse_static 331.16SriastradSUBDIR+= helper_use_dynamic 341.13SriastradSUBDIR+= helper_use_static 351.13Sriastrad 361.1SpookaTESTSDIR= ${TESTSBASE}/libexec/ld.elf_so 371.1Spooka 381.31SriastradTESTS_C+= t_dladdr 391.29SriastradTESTS_C+= t_dlclose_thread 401.26SriastradTESTS_C+= t_dlerror-cleared 411.26SriastradTESTS_C+= t_dlerror-false 421.26SriastradTESTS_C+= t_dlinfo 431.26SriastradTESTS_C+= t_dlvsym 441.26SriastradTESTS_C+= t_hash 451.26SriastradTESTS_C+= t_ifunc 461.22SriastradTESTS_C+= t_ifunc_norelro 471.22SriastradTESTS_C+= t_ifunc_norelro_now 481.26SriastradTESTS_C+= t_ifunc_now 491.11SkamilTESTS_C+= t_rtld_r_debug 501.25SriastradTESTS_C+= t_rtld_r_debug_nopie 511.13SriastradTESTS_C+= t_tls_extern 521.30SskrllTESTS_C+= t_tls_alignment 531.21Sriastrad 541.31SriastradLDFLAGS.t_dladdr+= -Wl,-export-dynamic 551.31Sriastrad 561.22SriastradSRCS.t_ifunc_now= t_ifunc.c 571.22SriastradSRCS.t_ifunc_norelro= t_ifunc.c 581.22SriastradSRCS.t_ifunc_norelro_now= t_ifunc.c 591.22Sriastrad 601.29SriastradLDADD.t_dlclose_thread+= -lpthread 611.29SriastradLDADD.t_dlclose_thread+= -Wl,-rpath,${TESTSDIR} 621.29SriastradLDADD.t_dlclose_thread+= -Wl,--export-dynamic 631.29Sriastrad 641.23SriastradLDADD.t_ifunc+= ${${MKRELRO} != "no":?-Wl,-z,relro:} 651.23SriastradLDADD.t_ifunc_now+= ${${MKRELRO} != "no":?-Wl,-z,relro:} -Wl,-z,now 661.24SriastradLDADD.t_ifunc_norelro+= ${${MKRELRO} != "no":?-Wl,-z,norelro:} 671.24SriastradLDADD.t_ifunc_norelro_now+= ${${MKRELRO} != "no":?-Wl,-z,norelro:} -Wl,-z,now 681.22Sriastrad 691.25SriastradSRCS.t_rtld_r_debug_nopie= t_rtld_r_debug.c 701.25Sriastrad 711.25Sriastrad# If the port doesn't support PIE anyway, well, no big deal, we have 721.25Sriastrad# two copies of the same tiny test. 731.25SriastradLDADD.t_rtld_r_debug_nopie+= -Wl,-no-pie 741.25Sriastrad 751.21Sriastrad.PATH: ${NETBSDSRCDIR}/libexec/ld.elf_so 761.21SriastradSRCS.t_hash+= t_hash.c 771.21SriastradSRCS.t_hash+= hash.c 781.21SriastradCPPFLAGS.t_hash.c+= -I${NETBSDSRCDIR}/libexec/ld.elf_so 791.11Skamil 801.20SlukemCOPTS.t_rtld_r_debug.c += ${CC_WNO_MAYBE_UNINITIALIZED} 811.2Sskrll 821.2SskrllLDADD.t_dlerror-false= -Wl,-rpath,/var/nonexistent/lib 831.5SnonakaLDADD.t_dlvsym= -Wl,-rpath,${TESTSDIR}/h_helper_symver_dso2 841.22Sriastrad.for t in t_ifunc t_ifunc_now t_ifunc_norelro t_ifunc_norelro_now 851.34SriastradLDADD.${t}+= -Wl,-rpath,${TESTSDIR} -lutil 861.22SriastradDPADD.${t}+= ${LIBUTIL} 871.22Sriastrad.endfor 881.13SriastradLDADD.t_tls_extern+= -Wl,-rpath,${TESTSDIR} 891.1Spooka 901.26SriastradTESTS_SH+= t_df_1_noopen 911.26SriastradTESTS_SH+= t_dl_symver 921.27SriastradTESTS_SH+= t_r_rel 931.26SriastradTESTS_SH+= t_thread_local_dtor 941.3Sskrll 951.3SskrllBINDIR= ${TESTSDIR} 961.3SskrllPROGS+= h_df_1_noopen1 971.3SskrllSRCS.h_df_1_noopen1= h_df_1_noopen.c 981.3Sskrll 991.3SskrllPROGS+= h_df_1_noopen2 1001.3SskrllSRCS.h_df_1_noopen2= h_df_1_noopen.c 1011.3SskrllLDADD.h_df_1_noopen2= -lpthread 1021.3Sskrll 1031.9SjoergPROGS+= h_thread_local_dtor 1041.9SjoergLDADD.h_thread_local_dtor= -Wl,-rpath,${TESTSDIR} -lpthread 1051.9Sjoerg 1061.8SjoergPROGS+= h_ifunc 1071.8SjoergSRCS.h_ifunc= h_ifunc.c 1081.8SjoergIFUNCDIR!= cd ${.CURDIR}/helper_ifunc_dso && ${PRINTOBJDIR} 1091.8SjoergLDADD.h_ifunc= -Wl,-rpath,${TESTSDIR} -L${IFUNCDIR} -lh_helper_ifunc_dso 1101.8Sjoerg 1111.4SjoergPROGS+= h_locking 1121.4SjoergSRCS.h_locking= h_locking.c 1131.4SjoergLDADD.h_locking= -lpthread -Wl,--export-dynamic -Wl,-rpath,${TESTSDIR} 1141.4Sjoerg 1151.5SnonakaPROGS+= h_dl_symver_v0 1161.5SnonakaSRCS.h_dl_symver_v0= h_dl_symver.c 1171.5SnonakaV0ODIR!= cd ${.CURDIR}/helper_symver_dso0 && ${PRINTOBJDIR} 1181.5SnonakaLDADD.h_dl_symver_v0= -L${V0ODIR} -lh_helper_symver_dso 1191.5Snonaka 1201.5SnonakaPROGS+= h_dl_symver_v1 1211.5SnonakaSRCS.h_dl_symver_v1= h_dl_symver.c 1221.5SnonakaV1ODIR!= cd ${.CURDIR}/helper_symver_dso1 && ${PRINTOBJDIR} 1231.5SnonakaLDADD.h_dl_symver_v1= -L${V1ODIR} -lh_helper_symver_dso 1241.5Snonaka 1251.5SnonakaPROGS+= h_dl_symver_v2 1261.5SnonakaSRCS.h_dl_symver_v2= h_dl_symver.c 1271.5SnonakaV2ODIR!= cd ${.CURDIR}/helper_symver_dso2 && ${PRINTOBJDIR} 1281.5SnonakaLDADD.h_dl_symver_v2= -L${V2ODIR} -lh_helper_symver_dso 1291.5Snonaka 1301.27SriastradPROGS+= h_r_rel_pack 1311.27SriastradPROGS+= h_r_rel_nopack 1321.27Sriastrad 1331.27SriastradSRCS.h_r_rel_pack= h_r_rel.c 1341.27SriastradSRCS.h_r_rel_nopack= h_r_rel.c 1351.27Sriastrad 1361.27Sriastradh_r_rel_pack: CTFMERGE=: # PR toolchain/59364: ctf tools needs update 1371.33Sriastradh_r_rel_pack.link: CTFMERGE=: # PR toolchain/59364: ctf tools needs update 1381.35SriastradCOPTS.h_r_rel.c+= -fpie 1391.35SriastradLDFLAGS.h_r_rel_pack= -pie ${LD_PACK_RELATIVE_RELOCS} 1401.35SriastradLDFLAGS.h_r_rel_nopack= -pie ${LD_NOPACK_RELATIVE_RELOCS} 1411.27Sriastrad 1421.7Smrg.include <bsd.test.mk> 1431.7Smrg 1441.7Smrg.else 1451.7Smrg 1461.7SmrgNOPROG= # defined 1471.7Smrg.include <bsd.prog.mk> 1481.7Smrg 1491.6Smrg.endif 150