Bruno Haible wrote:
For the other case, we can introduce, next to the !SANITIZE_ADDRESS test, tests for getenv ("LD_PRELOAD") != NULL getenv ("ASAN_OPTIONS") != NULL getenv ("TSAN_OPTIONS") != NULL getenv ("MSAN_OPTIONS") != NULL getenv ("LSAN_OPTIONS") != NULL We can add more such environment variables as needed. getenv() lookups don't make system calls; so they are cheap.
A less-intrusive possibility is to suggest to people writing specialized log-to-stderr environments that they use an (optional) environment variable ERROR_FD to specify which file descriptor to log to (with the default being file descriptor 2), and that they test coreutils with ERROR_FD=3 and with file descriptor 3 open to their error log. That way, coreutils would not need to be modified, and could even get rid of the !SANITIZE_ADDRESS hack after AddressSanitizer adopts this approach.