1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-20 00:21:35 +00:00

Add LLD_UNSAFE to force use of ld.bfd when ld is lld

By default the compiler will find /usr/bin/ld for the linker.  If a port
sets LLD_UNSAFE and /usr/bin/ld is ld.lld, then add -fuse-ld=bfd to
force the use of the binutils BFD linker (from the base system, if
available, or by setting USE_BINUTILS).

This change is based on an earlier, similar patch from bapt, with the
addition of the -fuse-ld flag.

PR:		214864
Reviewed by:	bapt
Approved by:	portmgr (bapt)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D12064
This commit is contained in:
Ed Maste 2017-08-22 18:55:00 +00:00
parent d5b0073e2b
commit 6c3b516b73
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=448576

View File

@ -1737,6 +1737,20 @@ PKG_DEPENDS+= ${LOCALBASE}/sbin/pkg:${PKG_ORIGIN}
.include "${PORTSDIR}/Mk/bsd.gcc.mk"
.endif
_TEST_LD=/usr/bin/ld
.if defined(LLD_UNSAFE) && ${_TEST_LD:tA} == "/usr/bin/ld.lld"
LDFLAGS+= -fuse-ld=bfd
. if !defined(USE_BINUTILS)
. if exists(/usr/bin/ld.bfd)
LD= /usr/bin/ld.bfd
CONFIGURE_ENV+= LD=${LD}
MAKE_ENV+= LD=${LD}
. else
USE_BINUTILS= yes
. endif
. endif
.endif
.if defined(USE_BINUTILS) && !defined(DISABLE_BINUTILS)
BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
BINUTILS?= ADDR2LINE AR AS CPPFILT GPROF LD NM OBJCOPY OBJDUMP RANLIB \