Module Name:    src
Committed By:   kamil
Date:           Wed Jul 25 23:34:25 UTC 2018

Modified Files:
        src/share/mk: bsd.lib.mk bsd.own.mk bsd.prog.mk bsd.sys.mk

Log Message:
Introduce MKLIBCSANITIZER in the share/mk rules

Add flags that are required to build a program and a dynamically loaded
library.

Propagade LIBCSANITIZERFLAGS to CFLAGS and CXXFLAGS.

LDFLAGS is not changed on purpose, as a libcsanitizer is inside libc
and no external dependencies are needed.

Register NOLIBCSANITIZER, as certain distribution parts will need to be
skipped.


To generate a diff of this commit:
cvs rdiff -u -r1.376 -r1.377 src/share/mk/bsd.lib.mk
cvs rdiff -u -r1.1071 -r1.1072 src/share/mk/bsd.own.mk
cvs rdiff -u -r1.316 -r1.317 src/share/mk/bsd.prog.mk
cvs rdiff -u -r1.284 -r1.285 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.lib.mk
diff -u src/share/mk/bsd.lib.mk:1.376 src/share/mk/bsd.lib.mk:1.377
--- src/share/mk/bsd.lib.mk:1.376	Mon Jun 25 17:58:36 2018
+++ src/share/mk/bsd.lib.mk	Wed Jul 25 23:34:25 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.lib.mk,v 1.376 2018/06/25 17:58:36 kamil Exp $
+#	$NetBSD: bsd.lib.mk,v 1.377 2018/07/25 23:34:25 kamil Exp $
 #	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
 
 .include <bsd.init.mk>
@@ -157,7 +157,7 @@ SHLIB_FULLVERSION=${SHLIB_MAJOR}
 PICFLAGS ?= -fPIC
 
 .if ${MKPICLIB} != "no"
-CSHLIBFLAGS+= ${PICFLAGS} ${SANITIZERFLAGS}
+CSHLIBFLAGS+= ${PICFLAGS} ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS}
 .endif
 
 .if defined(CSHLIBFLAGS) && !empty(CSHLIBFLAGS)

Index: src/share/mk/bsd.own.mk
diff -u src/share/mk/bsd.own.mk:1.1071 src/share/mk/bsd.own.mk:1.1072
--- src/share/mk/bsd.own.mk:1.1071	Wed Jul 18 02:18:45 2018
+++ src/share/mk/bsd.own.mk	Wed Jul 25 23:34:25 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.own.mk,v 1.1071 2018/07/18 02:18:45 christos Exp $
+#	$NetBSD: bsd.own.mk,v 1.1072 2018/07/25 23:34:25 kamil Exp $
 
 # This needs to be before bsd.init.mk
 .if defined(BSD_MK_COMPAT_FILE)
@@ -933,9 +933,9 @@ dependall:	.NOTMAIN realdepend .MAKE
 # including bsd.own.mk.
 #
 .for var in \
-	NOCRYPTO NODOC NOHTML NOINFO NOLINKLIB NOLINT NOMAN NONLS NOOBJ NOPIC \
-	NOPICINSTALL NOPROFILE NOSHARE NOSTATICLIB NODEBUGLIB NOSANITIZER \
-	NORELRO
+	NOCRYPTO NODOC NOHTML NOINFO NOLIBCSANITIZER NOLINKLIB NOLINT NOMAN \
+	NONLS NOOBJ NOPIC NOPICINSTALL NOPROFILE NOSHARE NOSTATICLIB \
+	NODEBUGLIB NOSANITIZER NORELRO
 .if defined(${var})
 MK${var:S/^NO//}:=	no
 .endif
@@ -1093,6 +1093,12 @@ MKSANITIZER?=	no
 USE_SANITIZER?=	address
 
 #
+# Sanitizers implemented in libc, only "undefined" is supported
+#
+MKLIBCSANITIZER?=	no
+USE_LIBCSANITIZER?=	undefined
+
+#
 # Exceptions to the above:
 #
 

Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.316 src/share/mk/bsd.prog.mk:1.317
--- src/share/mk/bsd.prog.mk:1.316	Thu Jul 12 10:46:41 2018
+++ src/share/mk/bsd.prog.mk	Wed Jul 25 23:34:25 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.prog.mk,v 1.316 2018/07/12 10:46:41 maxv Exp $
+#	$NetBSD: bsd.prog.mk,v 1.317 2018/07/25 23:34:25 kamil Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -9,8 +9,8 @@
 
 ##### Sanitizer specific flags.
 
-CFLAGS+=	${SANITIZERFLAGS}
-CXXFLAGS+=	${SANITIZERFLAGS}
+CFLAGS+=	${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS}
+CXXFLAGS+=	${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS}
 LDFLAGS+=	${SANITIZERFLAGS}
 
 # Rename the local function definitions to not conflict with libc/rt/pthread/m.

Index: src/share/mk/bsd.sys.mk
diff -u src/share/mk/bsd.sys.mk:1.284 src/share/mk/bsd.sys.mk:1.285
--- src/share/mk/bsd.sys.mk:1.284	Sun Jun 24 19:35:12 2018
+++ src/share/mk/bsd.sys.mk	Wed Jul 25 23:34:25 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.sys.mk,v 1.284 2018/06/24 19:35:12 kamil Exp $
+#	$NetBSD: bsd.sys.mk,v 1.285 2018/07/25 23:34:25 kamil Exp $
 #
 # Build definitions used for NetBSD source tree builds.
 
@@ -146,6 +146,12 @@ SANITIZERFLAGS+=	-fsanitize=${USE_SANITI
 SANITIZERFLAGS=		# empty
 .endif
 
+.if ${MKLIBCSANITIZER:Uno} == "yes"
+LIBCSANITIZERFLAGS+=	-fsanitize=${USE_LIBCSANITIZER}
+LIBCSANITIZERFLAGS+=	-fno-sanitize=vptr	# Unsupported in micro-UBSan
+.else
+LIBCSANITIZERFLAGS=	# empty
+.endif
 
 CWARNFLAGS+=	${CWARNFLAGS.${ACTIVE_CC}}
 

Reply via email to