Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jun 2017 15:57:58 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r320272 - head/sys/conf
Message-ID:  <201706231557.v5NFvw8g098666@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Fri Jun 23 15:57:58 2017
New Revision: 320272
URL: https://svnweb.freebsd.org/changeset/base/320272

Log:
  enable --build-id for the kernel link
  
  A Build-ID is an identifier generated at link time to uniquely identify
  ELF binaries.  It allows efficient confirmation that an executable or
  shared library and a corresponding standalone debuginfo file match.
  (Otherwise, a checksum of the debuginfo file must be calculated when
  opening it in a debugger.)
  
  The FreeBSD base system includes GNU bfd ld 2.17.50 as the linker for
  architectures other than arm64.  Build-ID support was added to bfd ld
  shortly after that version, so was not previously available to us.
  
  We can now start making use of Build-ID as we migrate to using lld or
  bfd ld from ports, conditionally enabled based on the LINKER_TYPE and
  LINKER_VERSION make variables added in r320244 and subsequent commits.
  
  Reviewed by:	dim
  MFC after:	3 weeks
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D11314

Modified:
  head/sys/conf/kern.pre.mk
  head/sys/conf/kmod.mk

Modified: head/sys/conf/kern.pre.mk
==============================================================================
--- head/sys/conf/kern.pre.mk	Fri Jun 23 15:27:23 2017	(r320271)
+++ head/sys/conf/kern.pre.mk	Fri Jun 23 15:57:58 2017	(r320272)
@@ -114,6 +114,10 @@ DEFINED_PROF=	${PROF}
 # can override the others.
 CFLAGS+=	${CONF_CFLAGS}
 
+.if ${LINKER_TYPE} != "bfd" || ${LINKER_VERSION} > 21750
+LDFLAGS+=	-Wl,--build-id=sha1
+.endif
+
 # Optional linting. This can be overridden in /etc/make.conf.
 LINTFLAGS=	${LINTOBJKERNFLAGS}
 

Modified: head/sys/conf/kmod.mk
==============================================================================
--- head/sys/conf/kmod.mk	Fri Jun 23 15:27:23 2017	(r320271)
+++ head/sys/conf/kmod.mk	Fri Jun 23 15:57:58 2017	(r320272)
@@ -125,6 +125,10 @@ CFLAGS.gcc+= --param large-function-growth=1000
 CFLAGS+=	-fno-common
 LDFLAGS+=	-d -warn-common
 
+.if ${LINKER_TYPE} != "bfd" || ${LINKER_VERSION} > 21750
+LDFLAGS+=	-Wl,--build-id=sha1
+.endif
+
 CFLAGS+=	${DEBUG_FLAGS}
 .if ${MACHINE_CPUARCH} == amd64
 CFLAGS+=	-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201706231557.v5NFvw8g098666>