150476Speter# $FreeBSD: stable/11/libexec/rtld-elf/Makefile 346485 2019-04-21 09:13:56Z kib $ 258676Sbde 3270803Skib# Use the following command to build local debug version of dynamic 4270803Skib# linker: 5346485Skib# make DEBUG_FLAGS=-g WITHOUT_TESTS=yes all 6270803Skib 7265420Simp.include <src.opts.mk> 8298107SgjbPACKAGE= clibs 9188895SruMK_SSP= no 10169524Sdeischen 11127250SpeterPROG?= ld-elf.so.1 12298107Sgjb.if (${PROG:M*ld-elf32*} != "") 13298107SgjbTAGS+= lib32 14298107Sgjb.endif 15129242SseSRCS= rtld_start.S \ 16225152Skib reloc.c rtld.c rtld_lock.c rtld_printf.c map_object.c \ 17129204Scognet malloc.c xmalloc.c debug.c libmap.c 1874814SruMAN= rtld.1 19115814SobrienCSTD?= gnu99 20291723SnwhitehornCFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -ffreestanding 21291620SbdreweryCFLAGS+= -I${SRCTOP}/lib/csu/common 22211785Snwhitehorn.if exists(${.CURDIR}/${MACHINE_ARCH}) 23211785SnwhitehornRTLD_ARCH= ${MACHINE_ARCH} 24211785Snwhitehorn.else 25211785SnwhitehornRTLD_ARCH= ${MACHINE_CPUARCH} 26211785Snwhitehorn.endif 27211785SnwhitehornCFLAGS+= -I${.CURDIR}/${RTLD_ARCH} -I${.CURDIR} 28209885Snwhitehorn.if ${MACHINE_ARCH} == "powerpc64" 29209885SnwhitehornLDFLAGS+= -nostdlib -e _rtld_start 30209885Snwhitehorn.else 3145501SjdpLDFLAGS+= -nostdlib -e .rtld_start 32209885Snwhitehorn.endif 33201380SedWARNS?= 2 34137164SruINSTALLFLAGS= -C -b 35137164SruPRECIOUSPROG= 36243862SpjdBINDIR= /libexec 37319016SrgrimesSYMLINKS= ../..${BINDIR}/${PROG} ${LIBEXECDIR}/${PROG} 38110836SphantomMLINKS= rtld.1 ld-elf.so.1.1 \ 39110836Sphantom rtld.1 ld.so.1 4038816Sdfr 41215148Sdim.if ${MACHINE_CPUARCH} == "sparc64" 42215148SdimCFLAGS+= -fPIC 43215148Sdim.else 44215148SdimCFLAGS+= -fpic 45215148Sdim.endif 46216694SkibCFLAGS+= -DPIC $(DEBUG) 47280816Skib.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 48280816SkibCFLAGS+= -fvisibility=hidden 49280816Skib.endif 50308964SkibLDFLAGS+= -shared -Wl,-Bsymbolic -Wl,-z,defs 51275077SbaptLIBADD= c_pic 52297461Sbdrewery.if ${MK_TOOLCHAIN} == "no" 53297461SbdreweryLDFLAGS+= -L${LIBCDIR} 54297461Sbdrewery.endif 55168319Skan 56272350Sandrew.if ${MACHINE_CPUARCH} == "arm" 57260849Sed# Some of the required math functions (div & mod) are implemented in 58260849Sed# libcompiler_rt on ARM. The library also needs to be placed first to be 59260849Sed# correctly linked. As some of the functions are used before we have 60260849Sed# shared libraries. 61275077SbaptLIBADD+= compiler_rt 62245653Sandrew.endif 63245653Sandrew 64245653Sandrew 65245653Sandrew 66169524Sdeischen.if ${MK_SYMVER} == "yes" 67291620SbdreweryVERSION_DEF= ${LIBCSRCDIR}/Versions.def 68168319SkanSYMBOL_MAPS= ${.CURDIR}/Symbol.map 69168319SkanVERSION_MAP= Version.map 70168319SkanLDFLAGS+= -Wl,--version-script=${VERSION_MAP} 71168319Skan 72211785Snwhitehorn.if exists(${.CURDIR}/${RTLD_ARCH}/Symbol.map) 73211785SnwhitehornSYMBOL_MAPS+= ${.CURDIR}/${RTLD_ARCH}/Symbol.map 7445501Sjdp.endif 75168319Skan.endif 7634192Sjdp 77211785Snwhitehorn.sinclude "${.CURDIR}/${RTLD_ARCH}/Makefile.inc" 7845501Sjdp 79119044Sgordon# Since moving rtld-elf to /libexec, we need to create a symlink. 80119044Sgordon# Fixup the existing binary that's there so we can symlink over it. 81119044Sgordonbeforeinstall: 82287977Sbdrewery.if exists(${DESTDIR}/usr/libexec/${PROG}) && ${MK_STAGING} == "no" 83243864Spjd -chflags -h noschg ${DESTDIR}/usr/libexec/${PROG} 84137705Sru.endif 85119044Sgordon 86211785Snwhitehorn.PATH: ${.CURDIR}/${RTLD_ARCH} 8734192Sjdp 88267679Sjonathan.if ${MK_TESTS} != "no" 89267679SjonathanSUBDIR+= tests 90267679Sjonathan.endif 91267679Sjonathan 92291622Sbdrewery.include <bsd.prog.mk> 93302325Sbdrewery${PROG_FULL}: ${VERSION_MAP} 94168319Skan.include <bsd.symver.mk> 95