1# 2# $FreeBSD$ 3# 4MAINTAINER= jdp 5PROG= ld-elf.so.1 6SRCS= rtld_start.S rtld.c lockdflt.c map_object.c malloc.c \ 7 xmalloc.c debug.c reloc.c 8MAN1= rtld.1 9CFLAGS+= -Wall -DFREEBSD_ELF -I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR} 10LDFLAGS+= -nostdlib -e .rtld_start 11INSTALLFLAGS+= -fschg -C 12MLINKS= rtld.1 ld-elf.so.1.1 13 14.if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc) 15.include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc" 16.endif 17 18# If LDSCRIPT is defined, we build the dynamic linker as an 19# executable. Otherwise we build it as a shared object. We ignore 20# LDSCRIPT if the running kernel is too old to support it. 21.if defined(LDSCRIPT) 22KERN_OSRELDATE!= /sbin/sysctl -n kern.osreldate 2>/dev/null || echo 0 23.if ${KERN_OSRELDATE} >= 400001 24LDSO_IS_EXECUTABLE= yes 25.endif 26.endif 27 28.ifdef LDSO_IS_EXECUTABLE 29OBJS+= dyn_hack.so 30LDFLAGS+= -Wl,-T,${LDSCRIPT} -Wl,-E -Wl,-Bstatic 31LDADD+= -lc 32.else 33CFLAGS+= -fpic -DPIC 34LDFLAGS+= -shared -Wl,-Bsymbolic 35LDADD+= -lc_pic 36.endif 37 38dyn_hack.so: 39 ${CC} -shared -nostdlib -o dyn_hack.so -x c /dev/null 40 41.PATH: ${.CURDIR}/${MACHINE_ARCH} 42 43.include <bsd.prog.mk> 44