svn commit: r320272 - head/sys/conf
Ed Maste
emaste at FreeBSD.org
Fri Jun 23 15:58:00 UTC 2017
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
More information about the svn-src-head
mailing list