[backport#19041] ci: tsan with -stdlib=libc++-10
Summary:
ci: Remove unused workaround (MarcoFalke)
ci: Install llvm to get llvm symbolizer (MarcoFalke)
test: Add more tsan suppressions (MarcoFalke)
ci: Mute depends logs completely (MarcoFalke)
test: Extend tsan suppressions for clang stdlib (MarcoFalke)
ci: Use libc++ instead of libstdc++ for tsan (MarcoFalke)
ci: Set halt_on_error=1 for tsan (MarcoFalke)
ci: Deduplicate DOCKER_EXEC (MarcoFalke)
cirrus: Remove no longer needed install step (MarcoFalke)
Pull request description:
According to the [ThreadSanitizer docs](https://clang.llvm.org/docs/ThreadSanitizer.html#current-status): > C++11 threading is supported with **llvm libc++**. For example, the thread sanitizer build is currently not checking for double lock of mutexes. Fixes (partially) https://github.com/bitcoin/bitcoin/issues/19038#issuecomment-632138003
EDIT: included our own code's suppressions so the test is green
Backport of Core PR19041
Test Plan:
with clang-10 on archlinux:
cmake -GNinja -DENABLE_SANITIZERS=thread -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ninja check check-functional
threadsanitizer is green only gives out warnings about code that is exclusive to us (specifically, rcu_tests.cpp and doublelock of mutex in paymentserver qt code)
Reviewers: #bitcoin_abc, deadalnix
Reviewed By: #bitcoin_abc, deadalnix
Subscribers: deadalnix
Differential Revision: https://reviews.bitcoinabc.org/D7547