aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2022-05-27 18:23:37 +0000
committerDimitry Andric <dim@FreeBSD.org>2022-06-04 12:00:20 +0000
commit36c1a99ff45fe279d478a615f8c66aa10b003cea (patch)
tree0b45b44f719ca45f771d02b6391917412582b3a4
parent7cb37e2195570fb4f4d6b9b316736289fd17b7cb (diff)
downloadsrc-36c1a99ff45fe279d478a615f8c66aa10b003cea.tar.gz
src-36c1a99ff45fe279d478a615f8c66aa10b003cea.zip
Add several sanitizer ignore lists under /usr/lib/clang
Some of the sanitizers from compiler-rt can use ignore lists, which are loosely modeled on valgrind's example. Upstream provides default lists for AddressSanitizer, CFI, and MemorySanitizer, so install these in the expected location, /usr/lib/clang/14.0.3/share. Reviewed by: emaste MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D35338 (cherry picked from commit 7b6f5ebef68194c09708abeb6426ca7602b6dab1)
-rw-r--r--etc/mtree/BSD.usr.dist2
-rw-r--r--lib/libclang_rt/asan/Makefile3
-rw-r--r--lib/libclang_rt/cfi/Makefile3
-rw-r--r--lib/libclang_rt/compiler-rt-vars.mk1
-rw-r--r--lib/libclang_rt/msan/Makefile3
-rw-r--r--tools/build/mk/OptionalObsoleteFiles.inc4
6 files changed, 16 insertions, 0 deletions
diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist
index 2c9d793676f7..fc201efb5c26 100644
--- a/etc/mtree/BSD.usr.dist
+++ b/etc/mtree/BSD.usr.dist
@@ -55,6 +55,8 @@
lib
freebsd
..
+ share
+ ..
..
..
..
diff --git a/lib/libclang_rt/asan/Makefile b/lib/libclang_rt/asan/Makefile
index 66641c7e9121..3ad706cd3c9d 100644
--- a/lib/libclang_rt/asan/Makefile
+++ b/lib/libclang_rt/asan/Makefile
@@ -80,4 +80,7 @@ SRCS+= ubsan/ubsan_init.cpp
SRCS+= ubsan/ubsan_monitor.cpp
SRCS+= ubsan/ubsan_value.cpp
+FILESDIR= ${SANITIZER_SHAREDIR}
+FILES+= asan/asan_ignorelist.txt
+
.include <bsd.lib.mk>
diff --git a/lib/libclang_rt/cfi/Makefile b/lib/libclang_rt/cfi/Makefile
index 9910565b2f38..fffd62ab0d3e 100644
--- a/lib/libclang_rt/cfi/Makefile
+++ b/lib/libclang_rt/cfi/Makefile
@@ -36,4 +36,7 @@ SRCS+= sanitizer_common/sanitizer_thread_registry.cpp
SRCS+= sanitizer_common/sanitizer_tls_get_addr.cpp
SRCS+= sanitizer_common/sanitizer_type_traits.cpp
+FILESDIR= ${SANITIZER_SHAREDIR}
+FILES+= cfi/cfi_ignorelist.txt
+
.include <bsd.lib.mk>
diff --git a/lib/libclang_rt/compiler-rt-vars.mk b/lib/libclang_rt/compiler-rt-vars.mk
index dc89ded251ba..ab97cbb0c0b5 100644
--- a/lib/libclang_rt/compiler-rt-vars.mk
+++ b/lib/libclang_rt/compiler-rt-vars.mk
@@ -1,6 +1,7 @@
CLANG_SUBDIR=clang/14.0.3
CLANGDIR= /usr/lib/${CLANG_SUBDIR}
SANITIZER_LIBDIR= ${CLANGDIR}/lib/freebsd
+SANITIZER_SHAREDIR= ${CLANGDIR}/share
# armv[67] is a bit special since we allow a soft-floating version via
# CPUTYPE matching *soft*. This variant may not actually work though.
diff --git a/lib/libclang_rt/msan/Makefile b/lib/libclang_rt/msan/Makefile
index 76e05af7462c..12a6f035d71f 100644
--- a/lib/libclang_rt/msan/Makefile
+++ b/lib/libclang_rt/msan/Makefile
@@ -64,4 +64,7 @@ SRCS+= ubsan/ubsan_init.cpp
SRCS+= ubsan/ubsan_monitor.cpp
SRCS+= ubsan/ubsan_value.cpp
+FILESDIR= ${SANITIZER_SHAREDIR}
+FILES+= msan/msan_ignorelist.txt
+
.include <bsd.lib.mk>
diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc
index 78cc6ee8e126..be20223309b4 100644
--- a/tools/build/mk/OptionalObsoleteFiles.inc
+++ b/tools/build/mk/OptionalObsoleteFiles.inc
@@ -1551,6 +1551,10 @@ OLD_FILES+=usr/lib/clang/14.0.3/lib/freebsd/libclang_rt.xray-profiling-x86_64.a
OLD_FILES+=usr/lib/clang/14.0.3/lib/freebsd/libclang_rt.xray-x86_64.a
OLD_DIRS+=usr/lib/clang/14.0.3/lib/freebsd
OLD_DIRS+=usr/lib/clang/14.0.3/lib
+OLD_FILES+=usr/lib/clang/14.0.3/share/asan_ignorelist.txt
+OLD_FILES+=usr/lib/clang/14.0.3/share/cfi_ignorelist.txt
+OLD_FILES+=usr/lib/clang/14.0.3/share/msan_ignorelist.txt
+OLD_DIRS+=usr/lib/clang/14.0.3/share
OLD_DIRS+=usr/lib/clang/14.0.3
OLD_DIRS+=usr/lib/clang
OLD_FILES+=usr/share/doc/llvm/clang/LICENSE.TXT