Coverage libcxx - complete report

Dear All,
I am interested in finding data about the coverage of libc++. Unfortunately, the llvm-cov on llvm.org includes coverage information only for the source files. I want to check the coverage data for the headers as well, as many of the library components are entirely defined in the header files. After studing possible CMake configuration settings and searching for the information online (e.x. this old PR ⚙ D8716 [libcxx] Add code coverage configuration to CMake and LIT.), I tried to enable coverage and build the libcxx using the following CMake commands.

I have built and installed compiler_rt and I successfully configured the build using the following command:
cmake -G Ninja -S runtimes -B build-cov -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" -DLIBCXX_GENERATE_COVERAGE=ON -DLIBCXX_COVERAGE_LIBRARY=/home/jakub/compiler-rt/lib/linux/libclang_rt.profile-x86_64.a

I successfully built the runtimes using:
ninja cxx cxxabi unwind

I run tests using
ninja check-cxx

Despite providing the path to the profile library, I got a linker error while running tests for libcxx/experimental. I have checked, using objdump, if the static library contains the proper function definition and proved it does.

"/usr/bin/c++" "/home/jakub/Documents/git/llvm-project/libcxx/test/libcxx/experimental/memory/memory.resource.global/new_delete_resource_lifetime.pass.cpp" "--target=x86_64-unknown-linux-gnu" "-nostdinc++" "-I" "/home/jakub/Documents/git/llvm-project/build-cov/include/c++/v1" "-I" "/home/jakub/Documents/git/llvm-project/build-cov/include/c++/v1" "-I" "/home/jakub/Documents/git/llvm-project/libcxx/test/support" "-std=c++2b" "-Werror" "-Wall" "-Wextra" "-Wshadow" "-Wundef" "-Wno-unused-command-line-argument" "-Wno-attributes" "-Wno-pessimizing-move" "-Wno-c++11-extensions" "-Wno-noexcept-type" "-Wno-atomic-alignment" "-Wno-user-defined-literals" "-Wno-tautological-compare" "-Wsign-compare" "-Wunused-variable" "-Wunused-parameter" "-Wunreachable-code" "-Wno-unused-local-typedef" "-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER" "-D_LIBCPP_ENABLE_EXPERIMENTAL" "-D_LIBCPP_DISABLE_AVAILABILITY" "-fcoroutines-ts" "-Werror=thread-safety" "-Wuser-defined-warnings" "-lc++experimental" "-nostdlib++" "-L" "/home/jakub/Documents/git/llvm-project/build-cov/lib" "-Wl,-rpath,/home/jakub/Documents/git/llvm-project/build-cov/lib" "-lc++" "-pthread" "-o" "/home/jakub/Documents/git/llvm-project/build-cov/test/libcxx/experimental/memory/memory.resource.global/Output/new_delete_resource_lifetime.pass.cpp.dir/t.tmp.exe"

# command stderr:

/usr/bin/ld: /usr/bin/ld: DWARF error: invalid or unhandled FORM value: 0x23

/home/jakub/Documents/git/llvm-project/build-cov/lib/libc++experimental.a(memory_resource.cpp.o): in function `__llvm_gcov_writeout':

memory_resource.cpp:(.text.__llvm_gcov_writeout+0x37): undefined reference to `llvm_gcda_start_file'

/usr/bin/ld: memory_resource.cpp:(.text.__llvm_gcov_writeout+0x83): undefined reference to `llvm_gcda_emit_function'

/usr/bin/ld: memory_resource.cpp:(.text.__llvm_gcov_writeout+0xa7): undefined reference to `llvm_gcda_emit_arcs'

/usr/bin/ld: memory_resource.cpp:(.text.__llvm_gcov_writeout+0xc3): undefined reference to `llvm_gcda_summary_info'

/usr/bin/ld: memory_resource.cpp:(.text.__llvm_gcov_writeout+0xc8): undefined reference to `llvm_gcda_end_file'

/usr/bin/ld: /home/jakub/Documents/git/llvm-project/build-cov/lib/libc++experimental.a(memory_resource.cpp.o): in function `__llvm_gcov_init':
memory_resource.cpp:(.text.__llvm_gcov_init+0x13): undefined reference to `llvm_gcov_init'

clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command failed with exit status: 

Even though there was a linker error, the rest of the tests were run.
I generated the coverage report manually because ninja generate-lincxx-coverage failed with an error:

[1/1] Generating coverage results

FAILED: libcxx/test/CMakeFiles/generate-libcxx-coverage /home/jakub/Documents/git/llvm-project/build-cov/libcxx/test/CMakeFiles/generate-libcxx-coverage 
cd /home/jakub/Documents/git/llvm-project/build-cov/libcxx/test/coverage && chmod +x /home/jakub/Documents/git/llvm-project/build-cov/libcxx/llvm-cov-wrapper && /usr/bin/lcov --gcov-tool /home/jakub/Documents/git/llvm-project/build-cov/libcxx/llvm-cov-wrapper --capture -d /home/jakub/Documents/git/llvm-project/build-cov/libcxx/src/CMakeFiles/cxx_objects.dir/ -d /home/jakub/Documents/git/llvm-project/build-cov/libcxx/src/CMakeFiles/cxx.dir/ -d /home/jakub/Documents/git/llvm-project/build-cov/libcxx/src/CMakeFiles/cxx_experimental.dir/ -d /home/jakub/Documents/git/llvm-project/build-cov/libcxx/test -o test_coverage.info && /usr/bin/lcov --gcov-tool /home/jakub/Documents/git/llvm-project/build-cov/libcxx/llvm-cov-wrapper --extract test_coverage.info '/home/jakub/Documents/git/llvm-project/libcxx/include/*' '/home/jakub/Documents/git/llvm-project/libcxx/src/*' -o test_coverage.info && /usr/local/bin/genhtml --demangle-cpp test_coverage.info -o test_coverage && /usr/share/cmake-3.24/bin/cmake -E remove test_coverage.info

Capturing coverage data from /home/jakub/Documents/git/llvm-project/build-cov/libcxx/src/CMakeFiles/cxx_objects.dir/ /home/jakub/Documents/git/llvm-project/build-cov/libcxx/src/CMakeFiles/cxx.dir/ /home/jakub/Documents/git/llvm-project/build-cov/libcxx/src/CMakeFiles/cxx_experimental.dir/ /home/jakub/Documents/git/llvm-project/build-cov/libcxx/test

Subroutine read_intermediate_text redefined at /usr/bin/geninfo line 2623.
Subroutine read_intermediate_json redefined at /usr/bin/geninfo line 2655.
Subroutine intermediate_text_to_info redefined at /usr/bin/geninfo line 2703.
Subroutine intermediate_json_to_info redefined at /usr/bin/geninfo line 2792.
Subroutine get_output_fd redefined at /usr/bin/geninfo line 2872.
Subroutine print_gcov_warnings redefined at /usr/bin/geninfo line 2900.
Subroutine process_intermediate redefined at /usr/bin/geninfo line 2930.

Found LLVM gcov version 16.0.0, which emulates gcov version 4.2.0
geninfo: ERROR: cannot read /home/jakub/Documents/git/llvm-project/build-cov/libcxx/src/CMakeFiles/cxx_objects.dir/!
Using intermediate gcov format
ninja: build stopped: subcommand failed.

The results are completely different from the ones on the website. The generated report shows way bigger coverage, and includes information about header-only parts of the library (stored in the v1 folder). I wonder how the coverage report, published on the llvm.org website, is created? Maybe a complete cxx coverage is measured and published somewhere else?