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"