kernel: MK_REPRODUCIBLE_PATHS for full paths vs /usr/src

There are many environments that you do not want the paths to be
canonicalized. For example, if I always build a product from a specific
path in a jail that's dependent on the product version, I don't want
that to be sanitized to /usr/src because when I have profiling tools run
against multiple kernels, I can't do A/B testing and results processing
if everything points to /usr/src (sadly, the profiling tools cannot
remap back to the original like gdb can). Since we need both active at
the same time, symbloic link fallbacks don't work.

We do want the rest of the build to be reproducible, however. We'll get
the same binaries if we rebuild later since we always rebuild with the
same path.

Turn them both on for maximum reproduction for environments where that
cannot be guaranteed.

Sponsored by:		Netflix
Input from:		emaste, ivy
Differential Revision:	https://reviews.freebsd.org/D52959
This commit is contained in:
Warner Losh
2025-12-28 00:31:05 -07:00
parent 8e8d7d489f
commit faeaa25f56
7 changed files with 19 additions and 4 deletions
+1
View File
@@ -217,6 +217,7 @@ __DEFAULT_NO_OPTIONS = \
MALLOC_PRODUCTION \
OFED_EXTRA \
OPENLDAP \
REPRODUCIBLE_PATHS \
RPCBIND_WARMSTART_SUPPORT \
SORT_THREADS \
ZONEINFO_LEAPSECONDS_SUPPORT \