Use -isystem & -nostd* flags, which is the preferred way to use a custom libc++ (ours is libc++ build with MSAN) with Clang, as opposed to our current ad-hoc flags.
See: https://releases.llvm.org/16.0.0/projects/libcxx/docs/UsingLibcxx.html#using-a-custom-built-libc for more info:
Most compilers provide a way to disable the default behavior for finding the standard library and to override it with custom paths. With Clang, this can be done with:
clang++ -nostdinc++ -nostdlib++ \
-isystem <install>/include/c++/v1 \
-L <install>/lib \
-Wl,-rpath,<install>/lib \
-lc++ \
test.cpp
The native_fuzz_with_msan job is still broken (on master), which is related to using system compiler-rt, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005341 for more info. I think standardising how we use our libc++ is a first step towards fixing. Although this may ultimately require building a clang and compiler-rt ourselves.