conda-forge / conda-forge/abseil-cpp-feedstock
Customize options.h for ABI consistency
- Dominant language
- C++
- Stars
- 2
- Forks
- 18
- Avg merge
- 12h 55m
- Merged PRs (30d)
- 1
Description
### Solution to issue cannot be found in the documentation.
- [X] 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:
```c++
// 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: https://github.com/apache/arrow/pull/13991#issuecomment-1233151550)
### Installed packages
```shell
(not relevant)
```
### Environment info
```shell
(not relevant)
```
Contributor guide
Assessment
This issue has not been assessed yet.