[compiler-rt] Add shared_cxxabi requirement to some tests
authorLeonard Chan <leonardchan@google.com>
Fri, 24 Sep 2021 18:51:26 +0000 (11:51 -0700)
committerLeonard Chan <leonardchan@google.com>
Fri, 24 Sep 2021 18:51:26 +0000 (11:51 -0700)
commitf8da95cd7e68ea66010843ef44adbe8d2807170c
treedd89d4a05d34f813fcfb05b931489f9501fe2210
parenta5211bf365dd56b644516e70a9ee31db06b5c70e
[compiler-rt] Add shared_cxxabi requirement to some tests

This adds REQUIRES: shared_cxxabi to a bunch of tests that would fail if this
weak reference in sanitizer common was undefined. This is necessary in cases
where libc++abi.a is statically linked in. Because there is no strong reference
to __cxa_demangle in compiler-rt, then if libc++abi is linked in via a static
archive, then the linker will not extract the archive member that would define
that weak symbol. This causes a handful of tests to fail because this leads to
the symbolizer printing mangled symbols where tests expect them demangled.

Technically, this feature is WAI since sanitizer runtimes shouldn't fail if
this symbol isn't resolved, and linking statically means you wouldn't need to
link in all of libc++abi. As a workaround, we can simply make it a requirement
that these tests use shared libc++abis.

Differential Revision: https://reviews.llvm.org/D109639
compiler-rt/test/asan/TestCases/Linux/odr-vtable.cpp
compiler-rt/test/ubsan/TestCases/TypeCheck/vptr-virtual-base.cpp