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
This commit is contained in:
Dan McGregor 2021-02-17 22:26:49 +00:00 committed by Brooks Davis
parent 955b6109bb
commit d616ae46b4

View File

@ -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