From de6feefdb7cfd0779277a6c451ce19d60b1d2b4d Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Wed, 23 Aug 2017 23:30:25 +0000 Subject: [PATCH] Improve the coverage of debug symbols for MK_DEBUG_FILES. - Include debug symbols in static libraries. This permits binaries to include debug symbols for functions obtained from static libraries. - Permit the C/C++ compiler flags added for MK_DEBUG_FILES to be overridden by setting DEBUG_FILES_CFLAGS. Use this to limit the debug information for llvm libraries and binaries. Reviewed by: emaste Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D12025 --- lib/clang/Makefile.inc | 9 +++++++++ share/mk/bsd.lib.mk | 4 ++-- share/mk/bsd.prog.mk | 2 +- share/mk/bsd.sys.mk | 4 ++++ usr.bin/clang/Makefile.inc | 8 ++++++++ 5 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 lib/clang/Makefile.inc diff --git a/lib/clang/Makefile.inc b/lib/clang/Makefile.inc new file mode 100644 index 00000000000..a0b4eea7688 --- /dev/null +++ b/lib/clang/Makefile.inc @@ -0,0 +1,9 @@ +# $FreeBSD$ + +.include + +.if ${COMPILER_TYPE} == "clang" +DEBUG_FILES_CFLAGS= -gline-tables-only +.else +DEBUG_FILES_CFLAGS= -g1 +.endif diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index 3c6fb3812a0..40db23cc933 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -69,8 +69,8 @@ TAG_ARGS= -T ${TAGS:[*]:S/ /,/g} .if ${MK_DEBUG_FILES} != "no" && empty(DEBUG_FLAGS:M-g) && \ empty(DEBUG_FLAGS:M-gdwarf*) -SHARED_CFLAGS+= -g -SHARED_CXXFLAGS+= -g +CFLAGS+= ${DEBUG_FILES_CFLAGS} +CXXFLAGS+= ${DEBUG_FILES_CFLAGS} CTFFLAGS+= -g .endif diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk index b9a6444610d..b66424b1d19 100644 --- a/share/mk/bsd.prog.mk +++ b/share/mk/bsd.prog.mk @@ -39,7 +39,7 @@ CFLAGS+=${CRUNCH_CFLAGS} .else .if ${MK_DEBUG_FILES} != "no" && empty(DEBUG_FLAGS:M-g) && \ empty(DEBUG_FLAGS:M-gdwarf-*) -CFLAGS+= -g +CFLAGS+= ${DEBUG_FILES_CFLAGS} CTFFLAGS+= -g .endif .endif diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk index 2eaf973618e..dbda6fee087 100644 --- a/share/mk/bsd.sys.mk +++ b/share/mk/bsd.sys.mk @@ -212,6 +212,10 @@ SSP_CFLAGS?= -fstack-protector CFLAGS+= ${SSP_CFLAGS} .endif # SSP && !ARM && !MIPS +# Additional flags passed in CFLAGS and CXXFLAGS when MK_DEBUG_FILES is +# enabled. +DEBUG_FILES_CFLAGS?= -g + # Allow user-specified additional warning flags, plus compiler and file # specific flag overrides, unless we've overriden this... .if ${MK_WARNS} != "no" diff --git a/usr.bin/clang/Makefile.inc b/usr.bin/clang/Makefile.inc index f8eb829fbe8..dfff7ea3550 100644 --- a/usr.bin/clang/Makefile.inc +++ b/usr.bin/clang/Makefile.inc @@ -2,4 +2,12 @@ WARNS?= 0 +.include + +.if ${COMPILER_TYPE} == "clang" +DEBUG_FILES_CFLAGS= -gline-tables-only +.else +DEBUG_FILES_CFLAGS= -g1 +.endif + .include "../Makefile.inc"