Module Name: src
Committed By: christos
Date: Tue Jul 10 16:53:16 UTC 2018
Modified Files:
src/share/mk: sys.mk
Log Message:
Build seed fixes:
- use MKREPRO_TIMESTAMP as the seed if available.
- skip relative paths that cannot be normalized if it is not
XXX: pullup-8
To generate a diff of this commit:
cvs rdiff -u -r1.134 -r1.135 src/share/mk/sys.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/share/mk/sys.mk
diff -u src/share/mk/sys.mk:1.134 src/share/mk/sys.mk:1.135
--- src/share/mk/sys.mk:1.134 Mon Jul 9 05:22:55 2018
+++ src/share/mk/sys.mk Tue Jul 10 12:53:16 2018
@@ -1,4 +1,4 @@
-# $NetBSD: sys.mk,v 1.134 2018/07/09 09:22:55 martin Exp $
+# $NetBSD: sys.mk,v 1.135 2018/07/10 16:53:16 christos Exp $
# @(#)sys.mk 8.2 (Berkeley) 3/21/94
#
# This file contains the basic rules for make(1) and is read first
@@ -54,11 +54,20 @@ CXX?= c++
# Remove -Wsystem-headers because C++ headers aren't clean of warnings
CXXFLAGS?= ${CFLAGS:N-Wno-traditional:N-Wstrict-prototypes:N-Wmissing-prototypes:N-Wno-pointer-sign:N-ffreestanding:N-std=gnu[0-9][0-9]:N-Wold-style-definition:N-Wno-format-zero-length:N-Wsystem-headers}
+.if defined(MKREPRO_TIMESTAMP) && !empty(MKREPRO_TIMESTAMP)
+# Use the timestamp as a seed
+__INITSEED=${MKREPRO_TIMESTAMP}
+.else
+# Use the sources, as the seed... Normalize all paths...
__ALLSRC1= ${empty(DESTDIR):?${.ALLSRC}:${.ALLSRC:S|^${DESTDIR}|^destdir|}}
__ALLSRC2= ${empty(MAKEOBJDIR):?${__ALLSRC1}:${__ALLSRC1:S|^${MAKEOBJDIR}|^obj|}}
__ALLSRC3= ${empty(NETBSDSRCDIR):?${__ALLSRC2}:${__ALLSRC2:S|^${NETBSDSRCDIR}|^src|}}
__ALLSRC4= ${empty(X11SRCDIR):?${__ALLSRC3}:${__ALLSRC3:S|^${X11SRCDIR}|^xsrc|}}
-__BUILDSEED= ${BUILDSEED}/${__ALLSRC4:O}/${.TARGET}
+# Skip paths that contain relative components and can't be normalized, sort..
+__INITSEED= ${__ALLSRC4:N*/../*:O}
+.endif
+
+__BUILDSEED= ${BUILDSEED}/${__INITSEED}/${.TARGET}
_CXXSEED?= ${BUILDSEED:D-frandom-seed=${__BUILDSEED:hash}}
COMPILE.cc?= echo "random-seed is ${__BUILDSEED}"; ${CXX} ${_CXXSEED} ${CXXFLAGS} ${DTRACE_OPTS} ${CPPFLAGS} -c