From nobody Thu Jul 27 20:13:01 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RBhll22wyz4pdXs; Thu, 27 Jul 2023 20:13:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RBhld2qnvz3N3b; Thu, 27 Jul 2023 20:13:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1690488781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=erwTHObeLif10OS8h6fNMUu4ZmWmCyNx8kGInWplSIQ=; b=tEVN7rCclWUnI4+Ny6/a550FjRml7TrcIWSnp/k8dxRYXzeD62yiK576M9u3FoB7pb1zhM j84lylVUpvqBqyS3cH1gRZEBt/3Jq2H0Cv/fIrm2EqXdD/Zm6Q/p25CguWzHetiZLaraWF utZQlrM2ZoI7kvt5iFFLzgqlv+cVXvuDFakpBuBUYCVIlP9gy4RH4sUiFqRa3QVZv85PLG M1w1B5B8tdgcw7S06FtFAN8UqPuCUIZ6hTFwl7PuxEYa0jJXuyNS4n7whGTGJAOhn/+Ruo G6eKZqVAnBArpis6DzTvYFEHM8/DtsZqkrD7Cyq5QJYQHgH9vCAjTcvfiOO9cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1690488781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=erwTHObeLif10OS8h6fNMUu4ZmWmCyNx8kGInWplSIQ=; b=pfyBRhUWVF+REwCQ3mjM/DaMmhwHFskgqbqknlZvYyP7z61s8CwgGzC6FzQTR3UQXqroCY AgTkVxafWouFz0hupt8YEDmxCQBtS1ibgKzh18YjHe6475MoXxchMjgkh2avECLJVBi0z7 zI6KxHfSzPf5/jVLKaU9avjQtpsFoWnqNnR+Mz/pJFOyU+p8aVg8K8TmrHm/5I6NB6iqqU e2vwZD1QZLg8/JW+Jp2p0yh/TTzwlUEokbDFnhK1KBVdwgiLQoxfZNj8YizlZ5ZWg/AZvJ 5PWw6Wg0HXxXVXPEijA5OhiE77S+Mj2fwX2+cH79kLZ62eQWNWz1dZg9O8L3xw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1690488781; a=rsa-sha256; cv=none; b=EdAAWL2c/M5Wj6z3S8PesG5eoQh+QSjGYfuyRq/N+8H2yPiyIn9MyGMIs4V1/xccylnfWI uKrI9N7HrVlFp6hzf6AayLygbTEp6bj0EzlK17kb2Yd+N36tcCgOawZpHwGgKlx0CTFSGd XPnAGJy8+2V9x0jQKvKjy3Nm6szax/VYzTKAVoBF1HuZN+cICG80rWgDSUUk/m+YXFv1Cl QSTqpPyirw4MrpOCVxc1hz6RMhxikOzBdkcu2npiBtNIu0VLo96x5+lfQozhHYuGPJWELU 0ZKs2Pkrwnvwgs39V/159GeroBQY2TedQ0qsUp4vuEhbaU+qcmQLETGb9WJU6g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RBhld1QmBzNmm; Thu, 27 Jul 2023 20:13:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 36RKD13K087747; Thu, 27 Jul 2023 20:13:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 36RKD1O6087746; Thu, 27 Jul 2023 20:13:01 GMT (envelope-from git) Date: Thu, 27 Jul 2023 20:13:01 GMT Message-Id: <202307272013.36RKD1O6087746@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 4ae699122810 - main - dtrace: Add WITH_DTRACE_ASAN List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4ae6991228105eb34989c870194ae7b0a1e23be4 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=4ae6991228105eb34989c870194ae7b0a1e23be4 commit 4ae6991228105eb34989c870194ae7b0a1e23be4 Author: Domagoj Stolfa AuthorDate: 2023-07-27 18:27:42 +0000 Commit: Mark Johnston CommitDate: 2023-07-27 20:07:34 +0000 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 --- cddl/lib/libdtrace/Makefile | 7 +++++++ cddl/usr.sbin/dtrace/Makefile | 5 +++++ cddl/usr.sbin/lockstat/Makefile | 7 +++++++ cddl/usr.sbin/plockstat/Makefile | 7 +++++++ share/man/man5/src.conf.5 | 5 +++++ share/mk/src.opts.mk | 1 + tools/build/options/WITH_DTRACE_ASAN | 4 ++++ 7 files changed, 36 insertions(+) diff --git a/cddl/lib/libdtrace/Makefile b/cddl/lib/libdtrace/Makefile index 23cc8d2db574..a6a7b90d3d39 100644 --- a/cddl/lib/libdtrace/Makefile +++ b/cddl/lib/libdtrace/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + .PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libdtrace/common .PATH: ${SRCTOP}/cddl/contrib/opensolaris/lib/libgen/common @@ -138,6 +140,11 @@ DSRCS+= regs_aarch64.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 CLEANFILES= dt_errtags.c dt_names.c diff --git a/cddl/usr.sbin/dtrace/Makefile b/cddl/usr.sbin/dtrace/Makefile index d8510e62fb29..fcc0668f1b1d 100644 --- a/cddl/usr.sbin/dtrace/Makefile +++ b/cddl/usr.sbin/dtrace/Makefile @@ -30,6 +30,11 @@ CFLAGS+= -DHAVE_ISSETUGID #CFLAGS+= -DNEED_ERRLOC #YFLAGS+= -d +.if ${MK_DTRACE_ASAN} != "no" +CFLAGS+= -fsanitize=address -fsanitize=undefined +LDFLAGS+= -fsanitize=address -fsanitize=undefined +.endif + LIBADD= dtrace ctf elf proc spl .if ${MK_DTRACE_TESTS} != "no" diff --git a/cddl/usr.sbin/lockstat/Makefile b/cddl/usr.sbin/lockstat/Makefile index a4bec42df367..72cedbdb20ed 100644 --- a/cddl/usr.sbin/lockstat/Makefile +++ b/cddl/usr.sbin/lockstat/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + .PATH: ${SRCTOP}/cddl/contrib/opensolaris/cmd/lockstat PACKAGE= dtrace @@ -26,6 +28,11 @@ CFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris \ -I${SRCTOP}/sys CFLAGS+= -DHAVE_ISSETUGID +.if ${MK_DTRACE_ASAN} != "no" +CFLAGS+= -fsanitize=address -fsanitize=undefined +LDFLAGS+= -fsanitize=address -fsanitize=undefined +.endif + CFLAGS+= -DNEED_ERRLOC -g #YFLAGS+= -d diff --git a/cddl/usr.sbin/plockstat/Makefile b/cddl/usr.sbin/plockstat/Makefile index 22610870c846..41ef446c111b 100644 --- a/cddl/usr.sbin/plockstat/Makefile +++ b/cddl/usr.sbin/plockstat/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + .PATH: ${SRCTOP}/cddl/contrib/opensolaris/cmd/plockstat PACKAGE= dtrace @@ -26,6 +28,11 @@ CFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris \ -I${SRCTOP}/sys CFLAGS+= -DHAVE_ISSETUGID +.if ${MK_DTRACE_ASAN} != "no" +CFLAGS+= -fsanitize=address -fsanitize=undefined +LDFLAGS+= -fsanitize=address -fsanitize=undefined +.endif + LIBADD= dtrace proc .include diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 0deb0216e027..69f0cc5feff9 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -594,6 +594,11 @@ When set, it enforces these options: .It .Va WITHOUT_CTF .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 Build and install the DTrace test suite in .Pa /usr/tests/cddl/usr.sbin/dtrace . diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 899d620fb0c1..a799c1614fff 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -201,6 +201,7 @@ __DEFAULT_NO_OPTIONS = \ CLANG_FORMAT \ DETECT_TZ_CHANGES \ DISK_IMAGE_TOOLS_BOOTSTRAP \ + DTRACE_ASAN \ DTRACE_TESTS \ EXPERIMENTAL \ HESIOD \ diff --git a/tools/build/options/WITH_DTRACE_ASAN b/tools/build/options/WITH_DTRACE_ASAN new file mode 100644 index 000000000000..4240aee4b89b --- /dev/null +++ b/tools/build/options/WITH_DTRACE_ASAN @@ -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.