google-deepmind / reverb

Reverb is an efficient and easy-to-use data storage and transport system designed for machine learning research
Apache License 2.0
701 stars 93 forks source link

Use clang toolchain to building manylinux2014 wheels #136

Open ethanluoyc opened 11 months ago

ethanluoyc commented 11 months ago

TensorFlow > 2.13.0 starts using clang for building the release wheels. Reverb and Launchpad are still using GCC, which may potentially encounter ABI compatibility issues. See e.g., https://github.com/pybind/pybind11_abseil/issues/12

This PR updates Reverb to use clang as well. The toolchain configuration is obtained from running the TensorFlow repository with the release_cpu_linux config and then applying some manual modification.

I have to disable errors at the moment (see .bazelrc) as clang otherwise complains about building some of the dependencies (BoringSSL and UPB). Disabling the specific warnings does not seem to work at the moment but maybe I just didn't know how to set them properly in Bazel.