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