https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113244
--- Comment #2 from Marcus Holland-Moritz <gcc-bugzilla at mhxnet dot de> --- (In reply to Andrew Pinski from comment #1) > I suspect this is because libstdc++.so is NOT instrumented for TSAN. This is certainly possible. Is there documentation available on how to build a suitably instrumented libstdc++.so? I've spent a few hours now trying to build - all of gcc-13.2/gcc-12.3 - only libstdc++-v3 from gcc-13.2/gcc-12.3 with the following flags: CFLAGS="-fsanitize=thread -g -O2 -fno-omit-frame-pointer" CXXFLAGS="-fsanitize=thread -g -O2 -fno-omit-frame-pointer" LDFLAGS="-fsanitize=thread" All of my attempts failed due to strange errors (which I can list here more systematically if desired). A "plain" gcc build with no sanitizer-specific compiler/linker flags works just fine. Given that "libstdc++.so is NOT instrumented for TSAN" is a frequent response to similar false positive reports, I'm somewhat surprised by the lack of easily discoverable information on how to build an instrumented library. It also makes me wonder how useful the thread sanitizer (maybe other sanitizers as well) is at all without such an instrumented library. If an instrumented library is a requirement for `-fsanitize=thread` to work properly, there should probably exist a `configure` option to automatically build the required instrumented library versions (and ideally the right version would be used when linking with `-fsanitize=thread`).