1# $FreeBSD$ 2 3.include <bsd.own.mk> 4MK_SSP= no 5 6PROG?= ld-elf.so.1 7SRCS= rtld_start.S \ 8 reloc.c rtld.c rtld_lock.c rtld_printf.c map_object.c \ 9 malloc.c xmalloc.c debug.c libmap.c 10MAN= rtld.1 11CSTD?= gnu99 12CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD 13CFLAGS+= -I${.CURDIR}/../../lib/csu/common 14.if exists(${.CURDIR}/${MACHINE_ARCH}) 15RTLD_ARCH= ${MACHINE_ARCH} 16.else 17RTLD_ARCH= ${MACHINE_CPUARCH} 18.endif 19CFLAGS+= -I${.CURDIR}/${RTLD_ARCH} -I${.CURDIR} 20.if ${MACHINE_ARCH} == "powerpc64" 21CFLAGS+= -mcall-aixdesc 22LDFLAGS+= -nostdlib -e _rtld_start 23.else 24LDFLAGS+= -nostdlib -e .rtld_start 25.endif 26WARNS?= 2 27INSTALLFLAGS= -C -b 28PRECIOUSPROG= 29BINDIR= /libexec 30SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG} 31MLINKS= rtld.1 ld-elf.so.1.1 \ 32 rtld.1 ld.so.1 33 34.if ${MACHINE_CPUARCH} == "sparc64" 35CFLAGS+= -fPIC 36.else 37CFLAGS+= -fpic 38.endif 39CFLAGS+= -DPIC $(DEBUG) 40LDFLAGS+= -shared -Wl,-Bsymbolic 41DPADD= ${LIBC_PIC} 42LDADD= -lc_pic -lssp_nonshared 43 44.if ${MK_SYMVER} == "yes" 45LIBCDIR= ${.CURDIR}/../../lib/libc 46VERSION_DEF= ${LIBCDIR}/Versions.def 47SYMBOL_MAPS= ${.CURDIR}/Symbol.map 48VERSION_MAP= Version.map 49LDFLAGS+= -Wl,--version-script=${VERSION_MAP} 50 51${PROG}: ${VERSION_MAP} 52 53.if exists(${.CURDIR}/${RTLD_ARCH}/Symbol.map) 54SYMBOL_MAPS+= ${.CURDIR}/${RTLD_ARCH}/Symbol.map 55.endif 56.endif 57 58.sinclude "${.CURDIR}/${RTLD_ARCH}/Makefile.inc" 59 60# Since moving rtld-elf to /libexec, we need to create a symlink. 61# Fixup the existing binary that's there so we can symlink over it. 62beforeinstall: 63.if exists(${DESTDIR}/usr/libexec/${PROG}) 64 -chflags noschg ${DESTDIR}/usr/libexec/${PROG} 65.endif 66 67.PATH: ${.CURDIR}/${RTLD_ARCH} 68 69.include <bsd.symver.mk> 70.include <bsd.prog.mk> 71