.include "../../Makefile.inc1" .include "../Makefile.block2" .PATH: ${SRCDIR}/ld PROG= ld.bfd MFILE= ld${MANPAGEVER}.1 MAN= ${MFILE} SRCS+= ldgram.y \ ldlex.l \ lexsup.c \ ldlang.c \ mri.c \ ldctor.c \ ldmain.c \ ldwrite.c \ ldexp.c \ ldemul.c \ ldver.c \ ldmisc.c \ ldfile.c \ ldcref.c \ plugin.c \ ldbuildid.c LDADD= ${LDADD_BFD} ${LDADD_IBERTY} -lz LIBEXEC_BINUTILS= ${BINDIR}/.. SCRIPTDIR= ${LIBEXEC_BINUTILS}/ldscripts ELF_SCR_EXT= x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw .include "Makefile.x86_64" # We need to change CFLAGS, so that not to pick up bulibs's config.h first. BULIBS_INC:= # empty CFLAGS+= -I${SRCDIR}/include -I${SRCDIR}/bfd CFLAGS+= -I${SRCDIR}/ld -I${.OBJDIR} -I${.CURDIR} CFLAGS+= ${_BULIBS_INC} # for bfd.h CFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" CFLAGS+= -DBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" CFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" CFLAGS+= -DENABLE_PLUGINS -DHAVE_CONFIG_H CFLAGS+= -DTARGET_SYSTEM_ROOT=\"${USRDATA_PREFIX}\" CFLAGS+= -DELF_LIST_OPTIONS=TRUE CFLAGS+= -DELF_SHLIB_LIST_OPTIONS=TRUE CFLAGS+= -DELF_PLT_UNWIND_LIST_OPTIONS=TRUE # XXX: Do we want -Wl,-z,relro on by default? Differs for ld.bfd and lg.gold. CFLAGS+= -DDEFAULT_LD_Z_RELRO=0 # link-time optimization requires dlopen() which means ld cannot be built # statically and also support -plugin, not even for cross-tools. .if !defined(REALLY_NOSHARED) .undef NOSHARED .endif ldemul.c: ldemul-list.h CLEANDIRS+= ldscripts tmpdir CLEANFILES+= ldemul-list.h stringify.sed EMXFR= EMLST= .for _e in ${EMS} EMXFR+= extern ld_emulation_xfer_type ld_${_e}_emulation; EMLST+= &ld_${_e}_emulation, .endfor ldemul-list.h: echo "${EMXFR}" > ${.TARGET} echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET} stringify.sed: ${LN} -sf ${SRCDIR}/ld/emultempl/astring.sed ${.TARGET} ${MFILE}: ${SRCDIR}/ld/ld.1 cp ${.ALLSRC} ${.TARGET} install-ldscripts: ${LDSCRIPTS:S|^|ldscripts/|} ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${.ALLSRC} ${DESTDIR}${SCRIPTDIR} .if defined(IS_PRIMARY) MLINKS+= ${MFILE} ld.1 .endif afterinstall: install-ldscripts CLEANDIRS+= ldscripts tmpdir CLEANFILES+= ${MFILE} ldemul-list.h stringify.sed .include