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