I am going to abandon this update for now. This is going to need quite a bit more work and thought. One issue is that abseil-cpp forces us to use a specific c++ version with which not all consumers are prepared to cope. Hopefully the more important consumers will adapt some time down the road.
Here's the deceptively short list of ports that break. libphonenumber is pretty important in the gnome ecosystem and takes out a good chunk of the tree. audio/clementine devel/protobuf-c games/goldberg_emulator games/pokerth! geo/qgis net/barrier net/mosh productivity/libphonenumber x11/kde-applications/marble x11/vlc, Some details: audio/clementine /usr/local/include/absl/types/internal/span.h:133:27: error: no template named 'enable_if_t' in namespace 'std'; did you mean simply 'enable_if_t'? using EnableIfNotIsView = std::enable_if_t<!IsView<T>::value, int>; ^~~~~~~~~~~~~~~~ enable_if_t devel/protobuf-c configure: error: required protobuf header file not found games/goldberg_emulator In file included from /usr/local/include/absl/container/internal/compressed_tuple.h:40: /usr/local/include/absl/utility/utility.h:164:12: error: no member named 'in_place_t' in namespace 'std' using std::in_place_t; ~~~~~^ games/pokerth! /usr/local/include/google/protobuf/port_def.inc:200:1: error: static assertion failed due to requirement '201103L >= 201402L': Protobuf only supports C++14 and newer. static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer."); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ geo/qgis ld.lld: error: undefined reference due to --no-allow-shlib-undefined: __emutls_v._ZN6google8protobuf 8internal15ThreadSafeArena13thread_cache_E net/barrier ld: error: undefined symbol: testing::Mock::AllowUninterestingCalls(void const*) net/mosh /usr/local/include/absl/container/internal/compressed_tuple.h:155:48: error: no type named 'in_place_t' in namespace 'absl' explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args) ~~~~~~^ productivity/libphonenumber ld: error: undefined symbol: __emutls_v._ZN6google8protobuf8internal15ThreadSafeArena13thread_cache_E x11/kde-applications/marble /usr/local/include/absl/types/internal/span.h:130:24: error: no template named 'enable_if_t' in namespace 'std'; did you mean simply 'enable_if_t'? using EnableIfIsView = std::enable_if_t<IsView<T>::value, int>; ^~~~~~~~~~~~~~~~ enable_if_t x11/vlc, /usr/local/include/absl/utility/utility.h:164:12: error: no member named 'in_place_t' in namespace ' std' using std::in_place_t; ~~~~~^