leonardchan added inline comments.

================
Comment at: clang/cmake/caches/Fuchsia-stage2.cmake:141
+    set(RUNTIMES_${target}_SANITIZER_COMMON_TEST_TARGET_CFLAGS 
"--unwindlib=libunwind -static-libgcc" CACHE STRING "")
+    set(RUNTIMES_${target}_TSAN_TEST_TARGET_CFLAGS "--unwindlib=libunwind" 
CACHE STRING "")
+    set(RUNTIMES_${target}_LLVM_TOOLS_DIR "${CMAKE_BINARY_DIR}/bin" CACHE BOOL 
"")
----------------
leonardchan wrote:
> phosek wrote:
> > Don't we need the `-static-libgcc` flag here as well?
> When testing locally, there was actually a tsan test that wasn't working if 
> `-static-libgcc` was here. I can try to reproduce it. I believe it had to do 
> with static linking in an archive, but a particular object file in that 
> archive wasn't getting linked in which changed some runtime logic and caused 
> the test to fail.
Oh ok. Disregard my last explanation. So the test is 
`compiler-rt/test/tsan/Linux/check_memcpy.c`, and the actual reason it failed 
is because the test just checks to make sure calls to `memcpy/memset` are not 
used at all (since tsan should intercept them and replace them with its own 
functions/code).

The issue is that if we statically link in an uninstrumented libunwind, then 
the test will fail bc it will find memcpy/set calls in that libunwind code. 
Removing the `-static-libgcc` seems to instead opt for dynamically linking 
against libunwind.so, and not linking in any uninstrumented code. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109199/new/

https://reviews.llvm.org/D109199

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to