svn commit: r340984 - in head: gnu/usr.bin/binutils tools/build/mk tools/build/options

Ed Maste emaste at FreeBSD.org
Mon Nov 26 17:07:37 UTC 2018


Author: emaste
Date: Mon Nov 26 17:07:35 2018
New Revision: 340984
URL: https://svnweb.freebsd.org/changeset/base/340984

Log:
  Do not install GNU ld if lld is /usr/bin/ld
  
  GNU binutils ld.bfd 2.17.50 does not support ifuncs and produces broken
  binaries when ifuncs are in use.  When LLD_IS_LD is default we have an
  ifunc-capable system linker and can just avoid installing ld.bfd.
  
  Reported by:	theraven
  Reviewed by:	bz
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D18340

Modified:
  head/gnu/usr.bin/binutils/Makefile
  head/tools/build/mk/OptionalObsoleteFiles.inc
  head/tools/build/options/WITHOUT_BINUTILS
  head/tools/build/options/WITH_BINUTILS

Modified: head/gnu/usr.bin/binutils/Makefile
==============================================================================
--- head/gnu/usr.bin/binutils/Makefile	Mon Nov 26 17:00:39 2018	(r340983)
+++ head/gnu/usr.bin/binutils/Makefile	Mon Nov 26 17:07:35 2018	(r340984)
@@ -8,9 +8,13 @@ SUBDIR=	doc\
 	libopcodes \
 	libbinutils \
 	as \
-	ld \
 	objdump
 
+# When we use ld.lld as /usr/bin/ld, do not install the non-ifunc-capable
+# GNU binutils 2.17.50 ld.
+.if ${MK_LLD_IS_LD} == "no"
+SUBDIR+=ld
+.endif
 
 SUBDIR_DEPEND_libbinutils=libbfd		# for bfdver.h
 SUBDIR_DEPEND_as=libbfd libiberty libopcodes

Modified: head/tools/build/mk/OptionalObsoleteFiles.inc
==============================================================================
--- head/tools/build/mk/OptionalObsoleteFiles.inc	Mon Nov 26 17:00:39 2018	(r340983)
+++ head/tools/build/mk/OptionalObsoleteFiles.inc	Mon Nov 26 17:07:35 2018	(r340984)
@@ -208,7 +208,6 @@ OLD_FILES+=usr/bin/as
 OLD_FILES+=usr/bin/ld
 OLD_FILES+=usr/share/man/man1/ld.1.gz
 .endif
-OLD_FILES+=usr/bin/ld.bfd
 OLD_FILES+=usr/bin/objdump
 OLD_FILES+=usr/libdata/ldscripts/armelf_fbsd.x
 OLD_FILES+=usr/libdata/ldscripts/armelf_fbsd.xbn
@@ -411,6 +410,9 @@ OLD_FILES+=usr/share/man/man7/as.7.gz
 OLD_FILES+=usr/share/man/man7/ld.7.gz
 OLD_FILES+=usr/share/man/man7/ldint.7.gz
 OLD_FILES+=usr/share/man/man7/binutils.7.gz
+.endif
+.if ${MK_BINUTILS} == no || ${MK_LLD_IS_LD} == yes
+OLD_FILES+=usr/bin/ld.bfd
 .endif
 
 .if ${MK_BLACKLIST} == no

Modified: head/tools/build/options/WITHOUT_BINUTILS
==============================================================================
--- head/tools/build/options/WITHOUT_BINUTILS	Mon Nov 26 17:00:39 2018	(r340983)
+++ head/tools/build/options/WITHOUT_BINUTILS	Mon Nov 26 17:07:35 2018	(r340984)
@@ -1,4 +1,9 @@
 .\" $FreeBSD$
-Set to not build or install binutils (as, ld, and objdump) as part
+Set to not build or install GNU
+.Xr as 1 ,
+.Xr objdump 1 ,
+and for some CPU architectures
+.Xr ld.bfd 1
+as part
 of the normal system build.
 The resulting system cannot build programs from source.

Modified: head/tools/build/options/WITH_BINUTILS
==============================================================================
--- head/tools/build/options/WITH_BINUTILS	Mon Nov 26 17:00:39 2018	(r340983)
+++ head/tools/build/options/WITH_BINUTILS	Mon Nov 26 17:07:35 2018	(r340984)
@@ -1,3 +1,8 @@
 .\" $FreeBSD$
-Set to build and install binutils (as, ld, and objdump) as part
+Set to build and install GNU
+.Xr as 1 ,
+.Xr objdump 1 ,
+and for some CPU architectures
+.Xr ld.bfd 1
+as part
 of the normal system build.


More information about the svn-src-all mailing list