[Bug 256524] Does FreeBSD 12.2-RELEASE amd64 support -fsanitize=leak?
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 10 Jun 2021 17:07:01 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256524
Dimitry Andric <dim@FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|New |Closed
CC| |dim@FreeBSD.org
Resolution|--- |Not A Bug
--- Comment #1 from Dimitry Andric <dim@FreeBSD.org> ---
Even though the code in
contrib/llvm-project/clang/lib/Driver/ToolChains/FreeBSD.cpp appears to imply
that LeakSanitizer is supported, the required libraries in compiler-rt do not.
E.g. contrib/llvm-project/compiler-rt/lib/lsan/lsan_common.h has:
// LeakSanitizer relies on some Glibc's internals (e.g. TLS machinery) on
Linux.
// Also, LSan doesn't like 32 bit architectures
// because of "small" (4 bytes) pointer size that leads to high false negative
// ratio on large leaks. But we still want to have it for some 32 bit arches
// (e.g. x86), see https://github.com/google/sanitizers/issues/403.
// To enable LeakSanitizer on a new architecture, one needs to implement the
// internal_clone function as well as (probably) adjust the TLS machinery for
// the new architecture inside the sanitizer library.
#if (SANITIZER_LINUX && !SANITIZER_ANDROID || SANITIZER_MAC) && \
(SANITIZER_WORDSIZE == 64) && \
(defined(__x86_64__) || defined(__mips64) || defined(__aarch64__) || \
defined(__powerpc64__))
#define CAN_SANITIZE_LEAKS 1
#elif defined(__i386__) && \
(SANITIZER_LINUX && !SANITIZER_ANDROID || SANITIZER_MAC)
#define CAN_SANITIZE_LEAKS 1
#elif defined(__arm__) && \
SANITIZER_LINUX && !SANITIZER_ANDROID
#define CAN_SANITIZE_LEAKS 1
#elif SANITIZER_NETBSD
#define CAN_SANITIZE_LEAKS 1
#else
#define CAN_SANITIZE_LEAKS 0
#endif
Somebody needs to step up and implement the required bits upstream, then we can
import it into FreeBSD. But for now, we don't have LeakSanitizer.
--
You are receiving this mail because:
You are the assignee for the bug.