dtrace: Add WITH_DTRACE_ASAN
This option is a blanket for all the DTrace-related software. The option when enabled passes in -fsanitize=address -fsanitize=undeifned, enabling ASAN and UBSAN in the following components: - libdtrace - dtrace(1) - lockstat(1) - plockstat(1) The option defaults to "no" and is intended as a developer aid. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D41157
This commit is contained in:
committed by
Mark Johnston
parent
1083a8cd85
commit
4ae6991228
@@ -1,5 +1,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
|
.include <src.opts.mk>
|
||||||
|
|
||||||
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libdtrace/common
|
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libdtrace/common
|
||||||
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libgen/common
|
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libgen/common
|
||||||
|
|
||||||
@@ -138,6 +140,11 @@ DSRCS+= regs_aarch64.d
|
|||||||
|
|
||||||
YFLAGS+=-d
|
YFLAGS+=-d
|
||||||
|
|
||||||
|
.if ${MK_DTRACE_ASAN} != "no"
|
||||||
|
CFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
LDFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
.endif
|
||||||
|
|
||||||
LIBADD= ctf elf proc pthread rtld_db
|
LIBADD= ctf elf proc pthread rtld_db
|
||||||
|
|
||||||
CLEANFILES= dt_errtags.c dt_names.c
|
CLEANFILES= dt_errtags.c dt_names.c
|
||||||
|
|||||||
@@ -30,6 +30,11 @@ CFLAGS+= -DHAVE_ISSETUGID
|
|||||||
#CFLAGS+= -DNEED_ERRLOC
|
#CFLAGS+= -DNEED_ERRLOC
|
||||||
#YFLAGS+= -d
|
#YFLAGS+= -d
|
||||||
|
|
||||||
|
.if ${MK_DTRACE_ASAN} != "no"
|
||||||
|
CFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
LDFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
.endif
|
||||||
|
|
||||||
LIBADD= dtrace ctf elf proc spl
|
LIBADD= dtrace ctf elf proc spl
|
||||||
|
|
||||||
.if ${MK_DTRACE_TESTS} != "no"
|
.if ${MK_DTRACE_TESTS} != "no"
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
|
.include <src.opts.mk>
|
||||||
|
|
||||||
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/cmd/lockstat
|
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/cmd/lockstat
|
||||||
|
|
||||||
PACKAGE= dtrace
|
PACKAGE= dtrace
|
||||||
@@ -26,6 +28,11 @@ CFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris \
|
|||||||
-I${SRCTOP}/sys
|
-I${SRCTOP}/sys
|
||||||
CFLAGS+= -DHAVE_ISSETUGID
|
CFLAGS+= -DHAVE_ISSETUGID
|
||||||
|
|
||||||
|
.if ${MK_DTRACE_ASAN} != "no"
|
||||||
|
CFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
LDFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
.endif
|
||||||
|
|
||||||
CFLAGS+= -DNEED_ERRLOC -g
|
CFLAGS+= -DNEED_ERRLOC -g
|
||||||
|
|
||||||
#YFLAGS+= -d
|
#YFLAGS+= -d
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
|
.include <src.opts.mk>
|
||||||
|
|
||||||
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/cmd/plockstat
|
.PATH: ${SRCTOP}/cddl/contrib/opensolaris/cmd/plockstat
|
||||||
|
|
||||||
PACKAGE= dtrace
|
PACKAGE= dtrace
|
||||||
@@ -26,6 +28,11 @@ CFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris \
|
|||||||
-I${SRCTOP}/sys
|
-I${SRCTOP}/sys
|
||||||
CFLAGS+= -DHAVE_ISSETUGID
|
CFLAGS+= -DHAVE_ISSETUGID
|
||||||
|
|
||||||
|
.if ${MK_DTRACE_ASAN} != "no"
|
||||||
|
CFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
LDFLAGS+= -fsanitize=address -fsanitize=undefined
|
||||||
|
.endif
|
||||||
|
|
||||||
LIBADD= dtrace proc
|
LIBADD= dtrace proc
|
||||||
|
|
||||||
.include <bsd.prog.mk>
|
.include <bsd.prog.mk>
|
||||||
|
|||||||
@@ -594,6 +594,11 @@ When set, it enforces these options:
|
|||||||
.It
|
.It
|
||||||
.Va WITHOUT_CTF
|
.Va WITHOUT_CTF
|
||||||
.El
|
.El
|
||||||
|
.It Va WITH_DTRACE_ASAN
|
||||||
|
Compile userspace DTrace code (libdtrace, dtrace(1), lockstat(1), plockstat(1))
|
||||||
|
with address and undefined behavior sanitizers.
|
||||||
|
Requires that Clang be used as the base system compiler
|
||||||
|
and that the runtime support library is available.
|
||||||
.It Va WITH_DTRACE_TESTS
|
.It Va WITH_DTRACE_TESTS
|
||||||
Build and install the DTrace test suite in
|
Build and install the DTrace test suite in
|
||||||
.Pa /usr/tests/cddl/usr.sbin/dtrace .
|
.Pa /usr/tests/cddl/usr.sbin/dtrace .
|
||||||
|
|||||||
@@ -201,6 +201,7 @@ __DEFAULT_NO_OPTIONS = \
|
|||||||
CLANG_FORMAT \
|
CLANG_FORMAT \
|
||||||
DETECT_TZ_CHANGES \
|
DETECT_TZ_CHANGES \
|
||||||
DISK_IMAGE_TOOLS_BOOTSTRAP \
|
DISK_IMAGE_TOOLS_BOOTSTRAP \
|
||||||
|
DTRACE_ASAN \
|
||||||
DTRACE_TESTS \
|
DTRACE_TESTS \
|
||||||
EXPERIMENTAL \
|
EXPERIMENTAL \
|
||||||
HESIOD \
|
HESIOD \
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
Compile userspace DTrace code (libdtrace, dtrace(1), lockstat(1), plockstat(1))
|
||||||
|
with address and undefined behavior sanitizers.
|
||||||
|
Requires that Clang be used as the base system compiler
|
||||||
|
and that the runtime support library is available.
|
||||||
Reference in New Issue
Block a user