Module Name:    src
Committed By:   christos
Date:           Sat Jun  2 01:41:49 UTC 2018

Modified Files:
        src/share/mk: bsd.README bsd.own.mk bsd.sys.mk

Log Message:
Add build glue to build all the code with sanitizers: MKSANITIZE.


To generate a diff of this commit:
cvs rdiff -u -r1.372 -r1.373 src/share/mk/bsd.README
cvs rdiff -u -r1.1062 -r1.1063 src/share/mk/bsd.own.mk
cvs rdiff -u -r1.277 -r1.278 src/share/mk/bsd.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/bsd.README
diff -u src/share/mk/bsd.README:1.372 src/share/mk/bsd.README:1.373
--- src/share/mk/bsd.README:1.372	Thu May 31 01:27:46 2018
+++ src/share/mk/bsd.README	Fri Jun  1 21:41:49 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.README,v 1.372 2018/05/31 05:27:46 mrg Exp $
+#	$NetBSD: bsd.README,v 1.373 2018/06/02 01:41:49 christos Exp $
 #	@(#)bsd.README	8.2 (Berkeley) 4/2/94
 
 This is the README file for the make "include" files for the NetBSD
@@ -387,6 +387,18 @@ MKREPRO         If "yes", create reprodu
 		result in the same build results.
 		Default: no
 
+MKSANITIZER	if "yes", use the selected sanitizer to compile userland
+		programs as defined in USE_SANITIZER, which defaults to
+		"memory". Available sanitizers are:
+			address:	A memory error detector (default)
+			thread:		A data race detector
+			memory:		An uninitializer read detector
+			undefined:	An undefined behavior detector
+			dataflow:	A general data flow analysis
+			cfi:		A control flow detector
+			safe-stack:	Protect against stack-based corruption
+		Only "address" is currently available for gcc(1)
+
 MKSHARE		If "no", act as "MKCATPAGES=no MKDOC=no MKHTML=no MKINFO=no
 		MKMAN=no MKNLS=no".
 		I.e, don't build catman pages, documentation, Info

Index: src/share/mk/bsd.own.mk
diff -u src/share/mk/bsd.own.mk:1.1062 src/share/mk/bsd.own.mk:1.1063
--- src/share/mk/bsd.own.mk:1.1062	Thu May 31 01:27:46 2018
+++ src/share/mk/bsd.own.mk	Fri Jun  1 21:41:49 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.own.mk,v 1.1062 2018/05/31 05:27:46 mrg Exp $
+#	$NetBSD: bsd.own.mk,v 1.1063 2018/06/02 01:41:49 christos Exp $
 
 # This needs to be before bsd.init.mk
 .if defined(BSD_MK_COMPAT_FILE)
@@ -939,7 +939,7 @@ dependall:	.NOTMAIN realdepend .MAKE
 #
 .for var in \
 	NOCRYPTO NODOC NOHTML NOINFO NOLINKLIB NOLINT NOMAN NONLS NOOBJ NOPIC \
-	NOPICINSTALL NOPROFILE NOSHARE NOSTATICLIB NODEBUGLIB
+	NOPICINSTALL NOPROFILE NOSHARE NOSTATICLIB NODEBUGLIB NOSANITIZER
 .if defined(${var})
 MK${var:S/^NO//}:=	no
 .endif
@@ -1091,6 +1091,12 @@ _MKVARS.yes += MKGCCCMDS
 MKGCCCMDS?=	${MKGCC}
 
 #
+# Sanitizers, only "address" and "undefined" are supported by gcc
+#
+MKSANITIZER?=	no
+USE_SANITIZER?=	address
+
+#
 # Exceptions to the above:
 #
 

Index: src/share/mk/bsd.sys.mk
diff -u src/share/mk/bsd.sys.mk:1.277 src/share/mk/bsd.sys.mk:1.278
--- src/share/mk/bsd.sys.mk:1.277	Wed May 23 22:06:31 2018
+++ src/share/mk/bsd.sys.mk	Fri Jun  1 21:41:49 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.sys.mk,v 1.277 2018/05/24 02:06:31 christos Exp $
+#	$NetBSD: bsd.sys.mk,v 1.278 2018/06/02 01:41:49 christos Exp $
 #
 # Build definitions used for NetBSD source tree builds.
 
@@ -89,6 +89,12 @@ LDFLAGS+=	-Wl,--fatal-warnings
 .endif
 .endif
 
+.if ${MKSANITIZER:Uno} == "yes"
+CFLAGS+=	-fsanitize=${USE_SANITIZER}
+CXXFLAGS+=	-fsanitize=${USE_SANITIZER}
+LDFLAGS+=	-fsanitize=${USE_SANITIZER}
+.endif
+
 LDFLAGS+=	-Wl,--warn-shared-textrel
 
 .if ${WARNS} > 1

Reply via email to