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