Abseil 2d2a8ae and later does not build against glibc 2.32 and later
envgap__abseil__abseil-cpp-774
Original GitHub issue ↗Opened 2020-09-02
01 / FAILURE SIGNATURE
As reported upstream
../absl/base/internal/strerror.cc:41:31: error: ‘sys_nerr’ was not declared in this scope
Not a benchmark task.
- No curated issue-specific recipe or verified environment fix is available.
02 / ENVIRONMENT RECIPE
- Base commit
Not freshly verified- Manifest
CMakeLists.txt- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
abseil/abseil-cpp #774 · read the original issue
**Describe the bug**
Compiling Abseil as a whole, or a target which transitively depends on the `absl::base_internal::StrError`, fails with the following report:
```
FAILED: absl/base/CMakeFiles/strerror.dir/internal/strerror.cc.o
/usr/bin/c++ -I../ -Wall -Wextra -Wcast-qual -Wconversion-null -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -Wno-missing-field-initializers -Wno-sign-compare -std=gnu++11 -MD -MT absl/base/CMakeFiles/strerror.dir/internal/strerror.cc.o -MF absl/base/CMakeFiles/strerror.dir/internal/strerror.cc.o.d -o absl/base/CMakeFiles/strerror.dir/internal/strerror.cc.o -c ../absl/base/internal/strerror.cc
../absl/base/internal/strerror.cc: In function ‘const char* absl::base_internal::{anonymous}::StrErrorAdaptor(int, char*, size_t)’:
../absl/base/internal/strerror.cc:41:31: error: ‘sys_nerr’ was not declared in this scope
41 | if (0 <= errnum && errnum < sys_nerr) {
| ^~~~~~~~
../absl/base/internal/strerror.cc:42:25: error: ‘sys_errlist’ was not declared in this scope
42 | if (const char* p = sys_errlist[errnum]) {
| ^~~~~~~~~~~
[13/155] Building CXX object absl/base/CMakeFiles/base.dir/internal/sysinfo.cc.
ninja: build stopped: subcommand failed.
```
**Steps to reproduce the bug**
In the abseil source directory, with a system glibc of 2.32 or later:
```sh
cmake -S . -B build -GNinja -DCMAKE_CXX_STANDARD=11
cmake --build build
```
**What version of Abseil are you using?**
Any including commit `2d2a8aea291c4877e75c7991a61e57d7e12b5373`
**What operating system and version are you using**
Arch Linux (rolling release), with glibc installed at package version 2.32-3
**What compiler and version are you using?**
```
% g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --with-isl --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-install-libiberty --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-libunwind-exceptions --disable-werror gdc_include_dir=/usr/include/dlang/gdc
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.2.0 (GCC)
```
**What build system are you using?**
cmake version 3.18.2, with ninja version 1.10.1
**Additional context**
T04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]
Issue-specific recipe and runtime smoke command require review against the complete issue and repository.
Legacy reproduction is generic install-only; match the actual issue failure before admission.