Bug#831184: mumble: FTBFS with GCC 6, seems Ice related
tags 831184 + patch pending thanks Attached are two patches (thanks to Mikkel Krautz for finding the solution and for the c++11 patch) both which fix the build. Unless there's an objection I'm going to use the patch to build with c++03 because that's what Mumble upstream tests Mumble with. Thanks -- Chris -- Chris Knadle chris.kna...@coredump.us Description: Fix FTBFS bug with GCC 6 Mumble expcets -std=c++03 but doesn't explicitly set this in order to allow the compiler to choose, and g++-6 defaults to -std=gnu++14. zeroc-ice ships both c++03 and c++11 libs, and the c++03 libs are the default. The combination leads to c++11 linking errors unless the -std is explicity set. Additionally the location of the c++11 libs differs depending on whether the architecture is 32-bit or 64-bit, so this needs to be specified as well. Author: Mikkel KrautzBugs-Debian: https://bugs.debian.org/831184 Bugs-Mumble: https://github.com/mumble-voip/mumble/issues/2494 Last-Updated: 2016-08-11 --- a/compiler.pri +++ b/compiler.pri @@ -89,6 +89,14 @@ QMAKE_LFLAGS *= $(shell dpkg-buildflags --get LDFLAGS) QMAKE_CFLAGS *= -Wfatal-errors -fvisibility=hidden QMAKE_CXXFLAGS *= -Wfatal-errors -fvisibility=hidden + QMAKE_CXXFLAGS *= -std=c++11 + + # ZeroC Ice's C++11 libs are in /usr/lib/$triple/c++11 on Debian. + MULTIARCH_TRIPLE = $$system($${QMAKE_CXX} -print-multiarch) + !isEmpty(MULTIARCH_TRIPLE) { + QMAKE_LIBDIR *= /usr/lib/$${MULTIARCH_TRIPLE}/c++11 + } + !CONFIG(quiet-build-log) { QMAKE_CFLAGS *= -Wshadow -Wconversion -Wsign-compare QMAKE_CXXFLAGS *= -Wshadow -Woverloaded-virtual -Wold-style-cast -Wconversion -Wsign-compare Description: Fix FTBFS bug with GCC 6 Mumble expcets -std=c++03 but doesn't explicitly set this in order to allow the compiler to choose, and g++-6 defaults to -std=gnu++14. zeroc-ice ships both c++03 and c++11 libs, and the c++03 libs are the default. The combination leads to c++11 linking errors unless the -std is explicity set. Author: Mikkel Krautz Bugs-Debian: https://bugs.debian.org/831184 Bugs-Mumble: https://github.com/mumble-voip/mumble/issues/2494 Last-Updated: 2016-08-11 --- a/compiler.pri +++ b/compiler.pri @@ -89,6 +89,8 @@ QMAKE_LFLAGS *= $(shell dpkg-buildflags --get LDFLAGS) QMAKE_CFLAGS *= -Wfatal-errors -fvisibility=hidden QMAKE_CXXFLAGS *= -Wfatal-errors -fvisibility=hidden + QMAKE_CXXFLAGS *= -std=c++03 + !CONFIG(quiet-build-log) { QMAKE_CFLAGS *= -Wshadow -Wconversion -Wsign-compare QMAKE_CXXFLAGS *= -Wshadow -Woverloaded-virtual -Wold-style-cast -Wconversion -Wsign-compare signature.asc Description: OpenPGP digital signature
Bug#831184: mumble: FTBFS with GCC 6, seems Ice related
Hi, When building an Ice application with C++11/C++14 enabled you need to link with libraries with ++11 suffix -lIce++11 instead of -lIce. libzeroc-ice3.6 provide C++98 libraries and C++11 libraries with ++11 suffix and the APIs are slightly different. Regards, José On Mon, Aug 1, 2016 at 2:56 AM, Chris Knadlewrote: > Greetings. > > Unfortunately Mumble in Debian won't compile with GCC-6 right now: > >https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831184 > > After talking to Mikkel Krautz (mumble upstream) I tried adding the > following to the unix {} block in murmur.pro: > > QMAKE_CXXFLAGS *= -std=c++11 > > but unfortunately this doesn't seem to help. I'm adding the maintainers > of zero-ice hoping that we can jointly track down how to fix this. > > Thanks. > >-- Chris > > -- > Chris Knadle > chris.kna...@coredump.us > > partital build failure log (with the excepiton of the -std=c++11 switch > it looks the same as the log Lucas Nussbaum supplied in the bug): > > --- > [...] > g++ -c -include release/murmurd -m64 -pipe -g -O2 > -fstack-protector-strong -Wformat -Werror=format-security -Wfatal-errors > -fvisibility=hidden -g -std=c++11 -O2 -Wall -W -D_REENTRANT > -DNO_UPDATE_CHECK -DPLUGIN_PATH=/usr/lib/mumble > -DMUMBLE_VERSION=1.2.16-1 -DHAVE_LIMITS_H -DHAVE_ENDIAN_H > -DRESTRICT=__restrict__ -D_FORTIFY_SOURCE=2 > -DMUMBLE_VERSION_STRING=1.2.16 -DMURMUR -DUSE_DBUS -DUSE_ICE > -DUSE_BONJOUR -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB > -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED > -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore > -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml > -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qt4/QtDBus > -I../../src -I. -I/usr/include/speech-dispatcher -I../bonjour -Irelease > -I/usr/include/avahi-compat-libdns_sd -o release/moc_BonjourServer.o > release/moc_BonjourServer.cpp > > g++ -m64 -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -Wl,-O1 -o > ../../release/murmurd release/ACL.o release/Group.o release/Channel.o > release/Connection.o release/User.o release/Timer.o release/CryptState.o > release/OSInfo.o release/Net.o release/SSL.o release/Version.o > release/main.o release/Server.o release/ServerUser.o release/ServerDB.o > release/Register.o release/Cert.o release/Messages.o release/Meta.o > release/RPC.o release/UnixMurmur.o release/DBus.o release/MurmurIce.o > release/BonjourServiceRegister.o release/BonjourServer.o > release/Mumble.pb.o release/Murmur.o release/moc_ACL.o > release/moc_Channel.o release/moc_Connection.o release/moc_Server.o > release/moc_ServerUser.o release/moc_Meta.o release/moc_UnixMurmur.o > release/moc_DBus.o release/moc_MurmurIce.o > release/moc_BonjourServiceRegister.o release/moc_BonjourServer.o > -L../../release -L/usr/lib/x86_64-linux-gnu -lprotobuf -lcap -lIce > -lIceUtil -lQtDBus -lssl -lcrypto -ldns_sd -lavahi-common -lavahi-client > -lpthread -lQtSql -lQtXml -lQtNetwork -lQtCore > > release/Murmur.o: In function > `IceInternal::Cpp11FnCallbackNC::~Cpp11FnCallbackNC()': > > /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for > IceInternal::Cpp11FnCallbackNC' > > /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for > IceInternal::Cpp11FnCallbackNC' > > /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for > IceInternal::Cpp11FnCallbackNC' > > /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for > IceInternal::Cpp11FnCallbackNC' > > /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for > IceInternal::Cpp11FnCallbackNC' > > release/Murmur.o:/usr/include/Ice/Proxy.h:95: more undefined references > to `vtable for IceInternal::Cpp11FnCallbackNC' follow > release/Murmur.o: In function `Cpp11CB': > > /<>/src/murmur/Murmur.cpp:7028: undefined reference to > `IceInternal::Cpp11FnCallbackNC::Cpp11FnCallbackNC(std::function (IceUtil::Exception const&)> const&, std::function const&)' > [...] > --- > -- José Gutiérrez de la Concha ZeroC, Inc.
Bug#831184: mumble: FTBFS with GCC 6, seems Ice related
Greetings. Unfortunately Mumble in Debian won't compile with GCC-6 right now: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831184 After talking to Mikkel Krautz (mumble upstream) I tried adding the following to the unix {} block in murmur.pro: QMAKE_CXXFLAGS *= -std=c++11 but unfortunately this doesn't seem to help. I'm adding the maintainers of zero-ice hoping that we can jointly track down how to fix this. Thanks. -- Chris -- Chris Knadle chris.kna...@coredump.us partital build failure log (with the excepiton of the -std=c++11 switch it looks the same as the log Lucas Nussbaum supplied in the bug): --- [...] g++ -c -include release/murmurd -m64 -pipe -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wfatal-errors -fvisibility=hidden -g -std=c++11 -O2 -Wall -W -D_REENTRANT -DNO_UPDATE_CHECK -DPLUGIN_PATH=/usr/lib/mumble -DMUMBLE_VERSION=1.2.16-1 -DHAVE_LIMITS_H -DHAVE_ENDIAN_H -DRESTRICT=__restrict__ -D_FORTIFY_SOURCE=2 -DMUMBLE_VERSION_STRING=1.2.16 -DMURMUR -DUSE_DBUS -DUSE_ICE -DUSE_BONJOUR -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qt4/QtDBus -I../../src -I. -I/usr/include/speech-dispatcher -I../bonjour -Irelease -I/usr/include/avahi-compat-libdns_sd -o release/moc_BonjourServer.o release/moc_BonjourServer.cpp g++ -m64 -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -Wl,-O1 -o ../../release/murmurd release/ACL.o release/Group.o release/Channel.o release/Connection.o release/User.o release/Timer.o release/CryptState.o release/OSInfo.o release/Net.o release/SSL.o release/Version.o release/main.o release/Server.o release/ServerUser.o release/ServerDB.o release/Register.o release/Cert.o release/Messages.o release/Meta.o release/RPC.o release/UnixMurmur.o release/DBus.o release/MurmurIce.o release/BonjourServiceRegister.o release/BonjourServer.o release/Mumble.pb.o release/Murmur.o release/moc_ACL.o release/moc_Channel.o release/moc_Connection.o release/moc_Server.o release/moc_ServerUser.o release/moc_Meta.o release/moc_UnixMurmur.o release/moc_DBus.o release/moc_MurmurIce.o release/moc_BonjourServiceRegister.o release/moc_BonjourServer.o -L../../release -L/usr/lib/x86_64-linux-gnu -lprotobuf -lcap -lIce -lIceUtil -lQtDBus -lssl -lcrypto -ldns_sd -lavahi-common -lavahi-client -lpthread -lQtSql -lQtXml -lQtNetwork -lQtCore release/Murmur.o: In function `IceInternal::Cpp11FnCallbackNC::~Cpp11FnCallbackNC()': /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for IceInternal::Cpp11FnCallbackNC' /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for IceInternal::Cpp11FnCallbackNC' /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for IceInternal::Cpp11FnCallbackNC' /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for IceInternal::Cpp11FnCallbackNC' /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for IceInternal::Cpp11FnCallbackNC' release/Murmur.o:/usr/include/Ice/Proxy.h:95: more undefined references to `vtable for IceInternal::Cpp11FnCallbackNC' follow release/Murmur.o: In function `Cpp11CB': /<>/src/murmur/Murmur.cpp:7028: undefined reference to `IceInternal::Cpp11FnCallbackNC::Cpp11FnCallbackNC(std::function const&, std::function const&)' [...] ---