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