1# $FreeBSD$ 2 3PROG= ld-elf.so.2 4SRCS= rtld_start.S \ 5 reloc.c rtld.c rtld_lock.c rtld_printf.c map_object.c \ 6 malloc.c xmalloc.c debug.c libmap.c 7MAN= rtld.1 8CSTD?= gnu99 9BINDIR= /libexec 10SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG} 11WARNS?= 2 12 13# To activate LD_DEBUG functionality, define ENABLE_DEBUG 14# e.g. make -DENABLE_DEBUG 15 16# for now do not let the use of -flto 17.if ${CFLAGS:M-flto} 18CFLAGS+= -fno-lto 19LDFLAGS+= -flto 20.endif 21 22CFLAGS+= -DIN_RTLD 23CFLAGS+= -I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR} -D__thread= 24CFLAGS+= -I${.CURDIR}/../../lib/csu/common 25LDFLAGS+= -nostdlib -e .rtld_start -Wl,--no-undefined 26INSTALLFLAGS= -C -b 27.ifndef NOFSCHG 28INSTALLFLAGS+= -fschg 29.endif 30MLINKS= rtld.1 ld-elf.so.1.1 31MLINKS+= rtld.1 ld-elf.so.2.1 32MLINKS+= rtld.1 _rtld_functrace.3 33 34.if !defined(NO_SYMVER) 35VERSION_DEF= ${.CURDIR}/../../lib/libc/Versions.def 36SYMBOL_MAPS= ${.CURDIR}/Symbol.map 37VERSION_MAP= Version.map 38LDFLAGS+= -Wl,--version-script=${VERSION_MAP} 39 40rtld.c: ${VERSION_MAP} 41 42.if exists(${.CURDIR}/${MACHINE_ARCH}/Symbol.map) 43SYMBOL_MAPS+= ${.CURDIR}/${MACHINE_ARCH}/Symbol.map 44.endif 45.endif 46 47.if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc) 48.include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc" 49.endif 50 51CFLAGS+= -fpic -DPIC 52LDFLAGS+= -shared -Wl,-Bsymbolic 53DPADD= ${.OBJDIR}/../../lib/libc_rtld/libc_rtld_pic.a 54LDADD= -L${.OBJDIR}/../../lib/libc_rtld -lc_rtld_pic 55 56.ifdef ENABLE_DEBUG 57CFLAGS+= -DDEBUG 58.endif 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 -h noschg ${DESTDIR}/usr/libexec/${PROG} 65.endif 66 67.PATH: ${.CURDIR}/${MACHINE_ARCH} 68 69.include <bsd.symver.mk> 70.include <bsd.prog.mk> 71