aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGregor <dan.mcgregor@usask.ca>2021-02-17 22:26:49 +0000
committerBrooks Davis <brooks@FreeBSD.org>2021-02-17 22:26:49 +0000
commitd616ae46b4849b0678326dfacbba5fd7c8febbea (patch)
tree79289a0be18fb1f31012fa82a4f542cec24aced2
parent955b6109bb36036e9357006be42dfa89cd7cb0f2 (diff)
downloadsrc-d616ae46b4849b0678326dfacbba5fd7c8febbea.tar.gz
src-d616ae46b4849b0678326dfacbba5fd7c8febbea.zip
Add fileprefixmap compiler feature
-ffile-prefix-map=<old>=<new> is a compiler feature first added in GCC 8, and implemented for clang 10. It remaps old paths to new paths in both debug information and __FILE__ and __BASE_FILE__ macros. It can be used to improve reproducibility or to hide local system directories. I intend to use it to replace the real source directory and real object directory with constant values across all builds. Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D28632
-rw-r--r--share/mk/bsd.compiler.mk4
1 files changed, 4 insertions, 0 deletions
diff --git a/share/mk/bsd.compiler.mk b/share/mk/bsd.compiler.mk
index fa8e6c44a17e..0d8f02489f00 100644
--- a/share/mk/bsd.compiler.mk
+++ b/share/mk/bsd.compiler.mk
@@ -226,6 +226,10 @@ ${X_}COMPILER_FEATURES+= c++17
.if ${${X_}COMPILER_TYPE} == "clang"
${X_}COMPILER_FEATURES+= retpoline init-all
.endif
+.if ${${X_}COMPILER_TYPE} == "clang" && ${${X_}COMPILER_VERSION} >= 100000 || \
+ (${${X_}COMPILER_TYPE} == "gcc" && ${${X_}COMPILER_VERSION} >= 80100)
+${X_}COMPILER_FEATURES+= fileprefixmap
+.endif
.else
# Use CC's values