diff --git a/share/mk/bsd.compiler.mk b/share/mk/bsd.compiler.mk index a52c3968fb0..681f6ffec14 100644 --- a/share/mk/bsd.compiler.mk +++ b/share/mk/bsd.compiler.mk @@ -235,7 +235,7 @@ ${X_}COMPILER_FEATURES+= c++11 c++14 ${X_}COMPILER_FEATURES+= c++17 .endif .if ${${X_}COMPILER_TYPE} == "clang" -${X_}COMPILER_FEATURES+= retpoline init-all +${X_}COMPILER_FEATURES+= compressed-debug retpoline init-all .endif .if ${${X_}COMPILER_TYPE} == "clang" && ${${X_}COMPILER_VERSION} >= 100000 || \ (${${X_}COMPILER_TYPE} == "gcc" && ${${X_}COMPILER_VERSION} >= 80100) diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index aaac0b68d98..0c80dd63d5e 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -113,8 +113,13 @@ CXXFLAGS+= -ftrivial-auto-var-init=pattern .if ${MK_DEBUG_FILES} != "no" && empty(DEBUG_FLAGS:M-g) && \ empty(DEBUG_FLAGS:M-gdwarf*) +.if !${COMPILER_FEATURES:Mcompressed-debug} +CFLAGS+= ${DEBUG_FILES_CFLAGS:N-gz*} +CXXFLAGS+= ${DEBUG_FILES_CFLAGS:N-gz*} +.else CFLAGS+= ${DEBUG_FILES_CFLAGS} CXXFLAGS+= ${DEBUG_FILES_CFLAGS} +.endif CTFFLAGS+= -g .endif diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk index 4f00be19387..437ccf37313 100644 --- a/share/mk/bsd.prog.mk +++ b/share/mk/bsd.prog.mk @@ -93,7 +93,11 @@ CFLAGS+=${CRUNCH_CFLAGS} .else .if ${MK_DEBUG_FILES} != "no" && empty(DEBUG_FLAGS:M-g) && \ empty(DEBUG_FLAGS:M-gdwarf-*) +.if !${COMPILER_FEATURES:Mcompressed-debug} +CFLAGS+= ${DEBUG_FILES_CFLAGS:N-gz*} +.else CFLAGS+= ${DEBUG_FILES_CFLAGS} +.endif CTFFLAGS+= -g .endif .endif diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk index 031d49bbaca..a964cf6e596 100644 --- a/share/mk/bsd.sys.mk +++ b/share/mk/bsd.sys.mk @@ -247,7 +247,7 @@ CFLAGS+= ${SSP_CFLAGS} # Additional flags passed in CFLAGS and CXXFLAGS when MK_DEBUG_FILES is # enabled. -DEBUG_FILES_CFLAGS?= -g +DEBUG_FILES_CFLAGS?= -g -gz=zlib # Allow user-specified additional warning flags, plus compiler and file # specific flag overrides, unless we've overridden this...