-
-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Solution to issue cannot be found in the documentation.
- I checked the documentation.
Issue
abseil-cpp is used downstream by different packages, some of which build in C++17 mode, but others in C++14 or C++11 mode.
By default, the Abseil library has a different ABI depending on the C++ language version. However, it also offers a mechanism to solve this issue:
https://github.com/abseil/abseil-cpp/blob/37c5c2e5cc51db1bfb4a5d2f2c5494a394d80e56/absl/base/options.h#L15-L51
Quoting from this file:
// Diamond dependency problems can be avoided if all packages utilize the same
// exact version of Abseil. Building from source code with the same compilation
// parameters is the easiest way to avoid such dependency problems. However, for
// package managers who cannot control such compilation parameters, we are
// providing the file to allow you to inject ABI (Application Binary Interface)
// stability across builds. Settings options in this file will neither change
// API nor ABI, providing a stable copy of Abseil between packages.Of course, once all transitively dependent packages are compiled in C++17 mode it becomes moot.
(see comment in Arrow PR for moving to C++17: apache/arrow#13991 (comment))
Installed packages
(not relevant)Environment info
(not relevant)Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working