On 27/03/2017 16:02, Richard Biener wrote:
On Mon, 27 Mar 2017, Dave Plater wrote:
On 27/03/2017 12:55, Richard Biener wrote:
On Mon, 27 Mar 2017, Dave Plater wrote:
Hi, I've been running around in circles trying to fix multimedia:libs/libdbus-c++'s gcc7 build errors, in home:plater. I fixed one which was a type conversion error but I'm struggling with this: In file included from ../../include/dbus-c++/server.h:34:0, from ../../include/dbus-c++/dbus.h:33, from propsgs-server.h:4, from propsgs-server.cpp:1: ../../include/dbus-c++/dispatcher.h: In static member function 'static void DBus::Threading
::init()': ../../include/dbus-c++/dispatcher.h:262:5: error: no matching function for call to '_init_threading(DBus::Mutex* (&)(), void (&)(DBus::Mutex*), void (&)(DBus::Mutex*), void (&)(DBus::Mutex*), DBus::CondVar* (&)(), void (&)(DBus::CondVar*), void (&)(DBus::CondVar*, DBus::Mutex*), bool (&)(DBus::CondVar*, DBus::Mutex*, int), void (&)(DBus::CondVar*), void (&)(DBus::CondVar*))' ); ^ ../../include/dbus-c++/dispatcher.h:247:13: note: candidate: void DBus::_init_threading() void DXXAPI _init_threading(); ^~~~~~~~~~~~~~~ ../../include/dbus-c++/dispatcher.h:247:13: note: candidate expects 0 arguments, 10 provided ../../include/dbus-c++/dispatcher.h:249:13: note: candidate: void DBus::_init_threading(DBus::MutexNewFn, DBus::MutexFreeFn, DBus::MutexLockFn, DBus::MutexUnlockFn, DBus::CondVarNewFn, DBus::CondVarFreeFn, DBus::CondVarWaitFn, DBus::CondVarWaitTimeoutFn, DBus::CondVarWakeOneFn, DBus::CondVarWakeAllFn) <near match> void DXXAPI _init_threading( ^~~~~~~~~~~~~~~ propsgs-server.cpp doesn't even call DBus::_init_threading() and although searching brings nothing up, if this isn't a gcc7 bug. These problems only occur in tests and examples so I can disable them but I would really like to understand this build error. The build-log in your home shows no error?
Thanks Dave P
I've enabled tests and examples again the build fails for gcc7. BTW the graphviz in Staging:Gcc7 doesn't give png capabilities to dot.
Likely you have
#ifndef DBUS_HAS_RECURSIVE_MUTEX typedef bool (*MutexFreeFn)(Mutex *mx); typedef bool (*MutexLockFn)(Mutex *mx); ^^^
returns bool but:
template
struct Threading { static void init() { _init_threading( mutex_new, mutex_free, mutex_lock, mutex_unlock, condvar_new, condvar_free, condvar_wait, condvar_wait_timeout, condvar_wake_one, condvar_wake_all ); ... static void mutex_lock(Mutex *mx) { mx->lock(); } returns void.
SHould work with -fpermissive but it shouldn't have worked with GCC 6 either so likely somehow DBUS_HAS_RECURSIVE_MUTEX changes when compiler change.
-fpermissive has no effect on this particular error, I'm giving up on this one and disabling tests and examples. Thanks Dave P -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org