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