summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-08-28 11:15:08 -0400
committerTavian Barnes <tavianator@tavianator.com>2024-08-28 17:33:20 -0400
commit49e8620fe191da4fabc79896d05d56cb531ed673 (patch)
tree83a33b23aa8e38a927ed7fc7c0ee22d3098a6757
parente19f2a8a4b3103134f06e5f8e5b59b61488c885f (diff)
downloadbfs-49e8620fe191da4fabc79896d05d56cb531ed673.tar.xz
build: Move tsan/target_clones conflict to the prelude
-rw-r--r--build/flags.mk4
-rw-r--r--src/prelude.h4
2 files changed, 3 insertions, 5 deletions
diff --git a/build/flags.mk b/build/flags.mk
index 504df63..4636620 100644
--- a/build/flags.mk
+++ b/build/flags.mk
@@ -41,10 +41,6 @@ _GCOV := ${TRUTHY,${GCOV}}
_LINT := ${TRUTHY,${LINT}}
_RELEASE := ${TRUTHY,${RELEASE}}
-# https://github.com/google/sanitizers/issues/342
-TSAN_CPPFLAGS,y := -DBFS_USE_TARGET_CLONES=0
-_CPPFLAGS += ${TSAN_CPPFLAGS,${_TSAN}}
-
ASAN_CFLAGS,y := -fsanitize=address
LSAN_CFLAGS,y := -fsanitize=leak
MSAN_CFLAGS,y := -fsanitize=memory -fsanitize-memory-track-origins
diff --git a/src/prelude.h b/src/prelude.h
index 1f5c152..48f377c 100644
--- a/src/prelude.h
+++ b/src/prelude.h
@@ -310,9 +310,11 @@ extern const char bfs_ldlibs[];
/**
* Check if function multiversioning via GNU indirect functions (ifunc) is supported.
+ *
+ * Disabled on TSan due to https://github.com/google/sanitizers/issues/342.
*/
#ifndef BFS_USE_TARGET_CLONES
-# if __has_attribute(target_clones) && (__GLIBC__ || __FreeBSD__)
+# if __has_attribute(target_clones) && (__GLIBC__ || __FreeBSD__) && !__SANITIZE_THREAD__
# define BFS_USE_TARGET_CLONES true
# endif
#endif