svn commit: r341239 - in stable/12: gnu/usr.bin/binutils tools/build/mk tools/build/options

Ed Maste emaste at FreeBSD.org
Thu Nov 29 15:48:38 UTC 2018


Author: emaste
Date: Thu Nov 29 15:48:36 2018
New Revision: 341239
URL: https://svnweb.freebsd.org/changeset/base/341239

Log:
  MFC r340984: 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.
  
  Merged to stable/12 as libc's ifunc use has been merged there; ifunc use
  has not been merged to releng/12.0 so this change does not need to be
  either.

Modified:
  stable/12/gnu/usr.bin/binutils/Makefile
  stable/12/tools/build/mk/OptionalObsoleteFiles.inc
  stable/12/tools/build/options/WITHOUT_BINUTILS
  stable/12/tools/build/options/WITH_BINUTILS
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/gnu/usr.bin/binutils/Makefile
==============================================================================
--- stable/12/gnu/usr.bin/binutils/Makefile	Thu Nov 29 15:42:32 2018	(r341238)
+++ stable/12/gnu/usr.bin/binutils/Makefile	Thu Nov 29 15:48:36 2018	(r341239)
@@ -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: stable/12/tools/build/mk/OptionalObsoleteFiles.inc
==============================================================================
--- stable/12/tools/build/mk/OptionalObsoleteFiles.inc	Thu Nov 29 15:42:32 2018	(r341238)
+++ stable/12/tools/build/mk/OptionalObsoleteFiles.inc	Thu Nov 29 15:48:36 2018	(r341239)
@@ -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: stable/12/tools/build/options/WITHOUT_BINUTILS
==============================================================================
--- stable/12/tools/build/options/WITHOUT_BINUTILS	Thu Nov 29 15:42:32 2018	(r341238)
+++ stable/12/tools/build/options/WITHOUT_BINUTILS	Thu Nov 29 15:48:36 2018	(r341239)
@@ -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: stable/12/tools/build/options/WITH_BINUTILS
==============================================================================
--- stable/12/tools/build/options/WITH_BINUTILS	Thu Nov 29 15:42:32 2018	(r341238)
+++ stable/12/tools/build/options/WITH_BINUTILS	Thu Nov 29 15:48:36 2018	(r341239)
@@ -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-stable-12 mailing list