<div dir="ltr">TL;DR; When either of LLVM_BUILD_BENCHMARKS or LIBCXX_INCLUDE_BENCHMARKS are enabled, as well as for llvm-test-suite, a dependency to abseil would either be auto-downloaded by the build system, or need to be user-specifiable, or provided in the source tree.<div><br></div><div><div>Details</div><div><br></div><div>There are (afaik) 3 copies of the <a href="https://github.com/google/benchmark" target="_blank">google/benchmark</a> project in the llvm tree: in llvm-test-suite, in llvm/utils, and in libcxx/utils/.</div><div><br></div><div>The benchmark code uses some functionality otherwise offered by <a href="https://abseil.io/" target="_blank">abseil</a>. Over time, this is inconvenient: continued need for duplication for some features; integration issues in projects using abseil due to macro conflicts; and overall bit rot / maintenance overhead.</div><div><br></div><div><a href="https://github.com/google/benchmark/pull/1183" target="_blank">We want</a> to add a dependency to abseil to the benchmarks project.</div></div><div><br></div><div>Abseil <a href="https://abseil.io/docs/cpp/platforms/platforms#:~:text=Abseil%20requires%20a%20code%20base,14%20through%20C%2B%2B20)." target="_blank">has some requirements</a> that may not perfectly match those of the impacted projects. For example, abseil stopped supporting Ubuntu 14.04 before its TLS. </div><div><br></div><div>Naturally, projects snap to whichever version of benchmark they want to; but this new dependency would add an extra consideration when considering updating the version of benchmarks; and the need to handle the extra dependency (either by being OK with it being auto-downloaded, or via the other means described above)</div><div><br></div><div>Are there any other issues that we're missing? Would anyone be hindered by this adoption of abseil in google/benchmarks?</div><div><br></div><div>Thanks,</div><div>Mircea.</div><div><br></div></div>