[Pkg-mongodb-maintainers] Bug#853556: mongodb: ftbfs with GCC-7
Matthias Klose
doko at debian.org
Tue Jan 31 09:34:02 UTC 2017
Package: src:mongodb
Version: 1:3.2.11-2
Severity: normal
Tags: sid buster
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-7
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-7/g++-7, but succeeds to build with gcc-6/g++-6. The
severity of this report may be raised before the buster release.
There is no need to fix this issue in time for the stretch release.
The full build log can be found at:
http://people.debian.org/~doko/logs/gcc7-20170126/mongodb_3.2.11-2_unstable_gcc7.log
The last lines of the build log are at the end of this report.
To build with GCC 7, either set CC=gcc-7 CXX=g++-7 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-7/porting_to.html
[...]
class ScopeGuardImpl1 : public ScopeGuardImplBase {
^~~~~~~~~~~~~~~
src/mongo/util/scopeguard.h:154:7: error: mangled name for 'mongo::ScopeGuardImpl1<void (*)(void*) throw (), char*>::ScopeGuardImpl1(const mongo::ScopeGuardImpl1<void (*)(void*) throw (), char*>&)' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
src/mongo/util/scopeguard.h:177:53: note: synthesized method 'mongo::ScopeGuardImpl1<void (*)(void*) throw (), char*>::ScopeGuardImpl1(const mongo::ScopeGuardImpl1<void (*)(void*) throw (), char*>&)' first required here
return ScopeGuardImpl1<F, P1>::MakeGuard(fun, p1);
^
src/mongo/util/scopeguard.h: In instantiation of 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = void (*)(void*) throw (); P1 = char*]':
src/mongo/util/net/message_port.cpp:192:57: required from here
src/mongo/util/scopeguard.h:160:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
~ScopeGuardImpl1() throw() {
^
src/mongo/util/scopeguard.h:160:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
src/mongo/util/scopeguard.h: In instantiation of 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = void (*)(void*) throw (); P1 = char*]':
src/mongo/util/scopeguard.h:157:16: required from 'static mongo::ScopeGuardImpl1<F, P1> mongo::ScopeGuardImpl1<F, P1>::MakeGuard(F, P1) [with F = void (*)(void*) throw (); P1 = char*]'
src/mongo/util/scopeguard.h:177:45: required from 'mongo::ScopeGuardImpl1<F, P1> mongo::MakeGuard(F, P1) [with F = void (*)(void*) throw (); P1 = char*]'
src/mongo/util/net/message_port.cpp:192:57: required from here
src/mongo/util/scopeguard.h:169:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
ScopeGuardImpl1(F fun, P1 p1) : fun_(fun), p1_(p1) {}
^~~~~~~~~~~~~~~
src/mongo/util/scopeguard.h:169:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
src/mongo/util/scopeguard.h:164:10: error: mangled name for 'void mongo::ScopeGuardImpl1<F, P1>::Execute() [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
void Execute() {
^~~~~~~
src/mongo/util/scopeguard.h:169:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::ScopeGuardImpl1(F, P1) [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
ScopeGuardImpl1(F fun, P1 p1) : fun_(fun), p1_(p1) {}
^~~~~~~~~~~~~~~
src/mongo/util/scopeguard.h:96:17: error: mangled name for 'static void mongo::ScopeGuardImplBase::SafeExecute(J&) [with J = mongo::ScopeGuardImpl1<void (*)(void*) throw (), char*>]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
static void SafeExecute(J& j) throw() {
^~~~~~~~~~~
src/mongo/util/scopeguard.h:156:35: error: mangled name for 'static mongo::ScopeGuardImpl1<F, P1> mongo::ScopeGuardImpl1<F, P1>::MakeGuard(F, P1) [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
static ScopeGuardImpl1<F, P1> MakeGuard(F fun, P1 p1) {
^~~~~~~~~
src/mongo/util/scopeguard.h:160:5: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1>::~ScopeGuardImpl1() [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
~ScopeGuardImpl1() throw() {
^
src/mongo/util/scopeguard.h:176:31: error: mangled name for 'mongo::ScopeGuardImpl1<F, P1> mongo::MakeGuard(F, P1) [with F = void (*)(void*) throw (); P1 = char*]' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
inline ScopeGuardImpl1<F, P1> MakeGuard(F fun, P1 p1) {
^~~~~~~~~
src/mongo/util/scopeguard.h:154:7: error: mangled name for 'mongo::ScopeGuardImpl1<void (*)(void*) throw (), char*>::ScopeGuardImpl1(const mongo::ScopeGuardImpl1<void (*)(void*) throw (), char*>&)' will change in C++17 because the exception specification is part of a function type [-Werror=c++1z-compat]
class ScopeGuardImpl1 : public ScopeGuardImplBase {
^~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
scons: *** [build/opt/mongo/util/net/message_port.o] Error 1
scons: building terminated because of errors.
debian/rules:52: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules:75: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
More information about the Pkg-mongodb-maintainers
mailing list