Bug#1012937: gloo: ftbfs with GCC-12
Package: src:gloo
Version: 0.0~git20200918.3dc0328-4
Severity: normal
Tags: sid bookworm
User: debian-gcc@lists.debian.org
Usertags: ftbfs-gcc-12
[This bug is targeted to the upcoming bookworm release]
Please keep this issue open in the bug tracker for the package it
was filed for. If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.
The package fails to build in a test rebuild on at least amd64 with
gcc-12/g++-12, but succeeds to build with gcc-11/g++-11. The
severity of this report will be raised before the bookworm release.
The full build log can be found at:
http://qa-logs.debian.net/2022/06/09/gcc12/gloo_0.0~git20200918.3dc0328-4_unstable_gcc12.log
The last lines of the build log are at the end of this report.
To build with GCC 11, either set CC=gcc-11 CXX=g++-11 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.
apt-get -t=experimental install g++
Common build failures are new warnings resulting in build failures with
-Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-11/porting_to.html
GCC 11 defaults to the GNU++17 standard. If your package installs
header files in /usr/include, please don't work around C++17 issues
by choosing a lower C++ standard for the package build, but fix these
issues to build with the C++17 standard.
[...]
[ 83%] Building CXX object gloo/CMakeFiles/gloo.dir/transport/tcp/unbound_buffer.cc.o
cd "/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/gloo" && /usr/bin/c++ -Dgloo_EXPORTS -I"/<<PKGBUILDDIR>>" -I"/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu" -isystem /usr/include/hiredis -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -lpthread -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -O2 -g -DNDEBUG -fPIC -MD -MT gloo/CMakeFiles/gloo.dir/transport/tcp/unbound_buffer.cc.o -MF CMakeFiles/gloo.dir/transport/tcp/unbound_buffer.cc.o.d -o CMakeFiles/gloo.dir/transport/tcp/unbound_buffer.cc.o -c "/<<PKGBUILDDIR>>/gloo/transport/tcp/unbound_buffer.cc"
/<<PKGBUILDDIR>>/gloo/transport/tcp/device.cc: In function ‘std::shared_ptr<gloo::transport::Device> gloo::transport::tcp::CreateDevice(const attr&)’:
/<<PKGBUILDDIR>>/gloo/transport/tcp/device.cc:152:39: error: aggregate ‘std::array<char, 64> hostname’ has incomplete type and cannot be defined
152 | std::array<char, HOST_NAME_MAX> hostname;
| ^~~~~~~~
[ 86%] Building CXX object gloo/CMakeFiles/gloo.dir/transport/ibverbs/address.cc.o
cd "/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/gloo" && /usr/bin/c++ -Dgloo_EXPORTS -I"/<<PKGBUILDDIR>>" -I"/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu" -isystem /usr/include/hiredis -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -lpthread -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -O2 -g -DNDEBUG -fPIC -MD -MT gloo/CMakeFiles/gloo.dir/transport/ibverbs/address.cc.o -MF CMakeFiles/gloo.dir/transport/ibverbs/address.cc.o.d -o CMakeFiles/gloo.dir/transport/ibverbs/address.cc.o -c "/<<PKGBUILDDIR>>/gloo/transport/ibverbs/address.cc"
[ 88%] Building CXX object gloo/CMakeFiles/gloo.dir/transport/ibverbs/buffer.cc.o
cd "/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/gloo" && /usr/bin/c++ -Dgloo_EXPORTS -I"/<<PKGBUILDDIR>>" -I"/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu" -isystem /usr/include/hiredis -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -lpthread -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -O2 -g -DNDEBUG -fPIC -MD -MT gloo/CMakeFiles/gloo.dir/transport/ibverbs/buffer.cc.o -MF CMakeFiles/gloo.dir/transport/ibverbs/buffer.cc.o.d -o CMakeFiles/gloo.dir/transport/ibverbs/buffer.cc.o -c "/<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.cc"
make[3]: *** [gloo/CMakeFiles/gloo.dir/build.make:527: gloo/CMakeFiles/gloo.dir/transport/tcp/device.cc.o] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from /<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.h:21,
from /<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.cc:9:
/<<PKGBUILDDIR>>/gloo/transport/ibverbs/pair.h:136:58: error: field ‘mappedRecvRegions_’ has incomplete type ‘std::array<std::unique_ptr<gloo::transport::ibverbs::MemoryRegion>, 8>’
136 | std::array<std::unique_ptr<MemoryRegion>, kMaxBuffers> mappedRecvRegions_;
| ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/12/bits/unique_ptr.h:36,
from /usr/include/c++/12/bits/shared_ptr_base.h:59,
from /usr/include/c++/12/bits/shared_ptr.h:53,
from /usr/include/c++/12/condition_variable:42,
from /<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.h:12:
/usr/include/c++/12/tuple:1595:45: note: declaration of ‘struct std::array<std::unique_ptr<gloo::transport::ibverbs::MemoryRegion>, 8>’
1595 | template<typename _Tp, size_t _Nm> struct array;
| ^~~~~
In file included from /<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.cc:19:
/<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.cc: In destructor ‘virtual gloo::transport::ibverbs::Buffer::~Buffer()’:
/<<PKGBUILDDIR>>/gloo/common/logging.h:137:7: warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
137 | throw EnforceNotMet( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138 | __FILE__, \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139 | __LINE__, \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140 | expr, \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
141 | r.get_message_and_free(MakeString(__VA_ARGS__))); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/gloo/common/logging.h:150:3: note: in expansion of macro ‘GLOO_ENFORCE_THAT_IMPL’
150 | GLOO_ENFORCE_THAT_IMPL(Equals((x), (y)), #x " == " #y, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.cc:63:3: note: in expansion of macro ‘GLOO_ENFORCE_EQ’
63 | GLOO_ENFORCE_EQ(sendPending_, 0, "Destructing buffer expecting completions");
| ^~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/gloo/common/logging.h:137:7: note: in C++11 destructors default to ‘noexcept’
137 | throw EnforceNotMet( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138 | __FILE__, \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139 | __LINE__, \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140 | expr, \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
141 | r.get_message_and_free(MakeString(__VA_ARGS__))); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/gloo/common/logging.h:150:3: note: in expansion of macro ‘GLOO_ENFORCE_THAT_IMPL’
150 | GLOO_ENFORCE_THAT_IMPL(Equals((x), (y)), #x " == " #y, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~
/<<PKGBUILDDIR>>/gloo/transport/ibverbs/buffer.cc:63:3: note: in expansion of macro ‘GLOO_ENFORCE_EQ’
63 | GLOO_ENFORCE_EQ(sendPending_, 0, "Destructing buffer expecting completions");
| ^~~~~~~~~~~~~~~
make[3]: *** [gloo/CMakeFiles/gloo.dir/build.make:597: gloo/CMakeFiles/gloo.dir/transport/ibverbs/buffer.cc.o] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:205: gloo/CMakeFiles/gloo.dir/all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j8 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Reply to: