[llvm-dev] Proposal: introduce dependency on abseil when building benchmarks

Mircea Trofin via llvm-dev llvm-dev at lists.llvm.org
Thu Sep 30 10:07:58 PDT 2021


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.

Details

There are (afaik) 3 copies of the google/benchmark
<https://github.com/google/benchmark> project in the llvm tree: in
llvm-test-suite, in llvm/utils, and in libcxx/utils/.

The benchmark code uses some functionality otherwise offered by abseil
<https://abseil.io/>. 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.

We want <https://github.com/google/benchmark/pull/1183> to add a dependency
to abseil to the benchmarks project.

Abseil has some requirements
<https://abseil.io/docs/cpp/platforms/platforms#:~:text=Abseil%20requires%20a%20code%20base,14%20through%20C%2B%2B20).>
that may not perfectly match those of the impacted projects. For example,
abseil stopped supporting Ubuntu 14.04 before its TLS.

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)

Are there any other issues that we're missing? Would anyone be hindered by
this adoption of abseil in google/benchmarks?

Thanks,
Mircea.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210930/f4327121/attachment.html>


More information about the llvm-dev mailing list