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<Mx, Cv>::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. Thanks Dave P
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<Mx, Cv>::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
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<Mx, Cv>::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. Thanks Dave P
On Mär 27 2017, Dave Plater dplater.list@gmail.com wrote:
BTW the graphviz in Staging:Gcc7 doesn't give png capabilities to dot.
You need graphviz-gnome for png.
Andreas.
On 27/03/2017 15:57, Andreas Schwab wrote:
On Mär 27 2017, Dave Plater dplater.list@gmail.com wrote:
BTW the graphviz in Staging:Gcc7 doesn't give png capabilities to dot.
You need graphviz-gnome for png.
Andreas.
I've tried every graphviz available and no dot -Tpng in Staging:Gcc7. I've just discovered another of my packages failing due to no -Tpng, multimedia:libs/audaspace.
Dave P
On 27/03/2017 15:57, Andreas Schwab wrote:
On Mär 27 2017, Dave Plater dplater.list@gmail.com wrote:
BTW the graphviz in Staging:Gcc7 doesn't give png capabilities to dot.
You need graphviz-gnome for png.
Andreas.
My apologies graphviz-gnome works but why does plain graphviz work everywhere else? Graphviz doesn't have pango/cairo libs that are needed for dot -Tpng.
Dave P
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
My apologies graphviz-gnome works but why does plain graphviz work everywhere else?
Does it?
Andreas.
On 28/03/2017 09:43, Andreas Schwab wrote:
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
My apologies graphviz-gnome works but why does plain graphviz work everywhere else?
Does it?
Andreas.
Yes, I've simply got BuildRequires: graphviz in my packages that build doxygen docs with png see multimedia:libs/audaspace: Format: "png" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gv imap imap_np ismap pic plain plain-ext pov ps ps2 svg svgz tk vml vmlz xdot xdot1.2 xdot1.4 error: Problems running dot: exit code=1, command='dot', arguments='"/home/abuild/rpmbuild/BUILD/audaspace-1.3.0/build/doc/DefaultSynchronizer_8h__incl.dot" -Tpng I've already buildrequired graphviz-gnome in libdbus-c++
Dave P
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
On 28/03/2017 09:43, Andreas Schwab wrote:
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
My apologies graphviz-gnome works but why does plain graphviz work everywhere else?
Does it?
Andreas.
Yes, I've simply got BuildRequires: graphviz in my packages that build doxygen docs with png see multimedia:libs/audaspace: Format: "png" not recognized. Use one of: canon cmap cmapx cmapx_np dot
So it does not work. Where does it work?
Andreas.
On 28/03/2017 11:59, Andreas Schwab wrote:
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
On 28/03/2017 09:43, Andreas Schwab wrote:
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
My apologies graphviz-gnome works but why does plain graphviz work everywhere else?
Does it?
Andreas.
Yes, I've simply got BuildRequires: graphviz in my packages that build doxygen docs with png see multimedia:libs/audaspace: Format: "png" not recognized. Use one of: canon cmap cmapx cmapx_np dot
So it does not work. Where does it work?
Andreas.
Everywhere else except for Staging:Gcc7, something is wrong with the gcc7 build of graphviz it doesn't support png in dot.
Dave P
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
Everywhere
Example, please.
Andreas.
On 28/03/2017 16:18, Andreas Schwab wrote:
On Mär 28 2017, Dave Plater dplater.list@gmail.com wrote:
Everywhere
Example, please.
Andreas.
https://build.opensuse.org/package/view_file/openSUSE:Factory/audaspace/auda... only requires graphviz but you're correct it fails but doesn't fail the build.
# zypper -v rm graphviz-gnome Verbosity: 1 Non-option program arguments: 'graphviz-gnome' Initializing Target Loading repository data... Reading installed packages... Force resolution: Yes Selecting 'graphviz-gnome-2.38.0-3.29.x86_64' for removal. Resolving package dependencies... Force resolution: Yes
The following package is going to be REMOVED: graphviz-gnome 2.38.0-3.29
1 package to remove. After the operation, 104.7 KiB will be freed. Continue? [y/n/? shows all options] (y): committing (1/1) Removing graphviz-gnome-2.38.0-3.29.x86_64 ..........................................................................................................................................................................[done] CommitResult (total 1, done 1, error 0, skipped 0, updateMessages 0) Checking for running processes using deleted libraries... arbuthnot:/data/packages # dot -Txxx Format: "xxx" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pic plain plain-ext png pov ps ps2 svg svgz tk vml vmlz vrml wbmp xdot xdot1.2 xdot1.4 ^^^ # On my 42.2 system this is possible.
Dave P
On Mär 29 2017, Dave Plater dplater.list@gmail.com wrote:
# zypper -v rm graphviz-gnome Verbosity: 1 Non-option program arguments: 'graphviz-gnome' Initializing Target Loading repository data... Reading installed packages... Force resolution: Yes Selecting 'graphviz-gnome-2.38.0-3.29.x86_64' for removal. Resolving package dependencies... Force resolution: Yes
The following package is going to be REMOVED: graphviz-gnome 2.38.0-3.29
1 package to remove. After the operation, 104.7 KiB will be freed. Continue? [y/n/? shows all options] (y): committing (1/1) Removing graphviz-gnome-2.38.0-3.29.x86_64 ..........................................................................................................................................................................[done] CommitResult (total 1, done 1, error 0, skipped 0, updateMessages 0) Checking for running processes using deleted libraries... arbuthnot:/data/packages # dot -Txxx Format: "xxx" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pic plain plain-ext png pov ps ps2 svg svgz tk vml vmlz vrml wbmp xdot xdot1.2 xdot1.4 ^^^ # On my 42.2 system this is possible.
That's not the same. You also have to remove the packages that were pulled in by graphiz-gnome to get the same state as in a package build.
Andreas.
On 29/03/2017 09:59, Andreas Schwab wrote:
On Mär 29 2017, Dave Plater dplater.list@gmail.com wrote:
# zypper -v rm graphviz-gnome Verbosity: 1 Non-option program arguments: 'graphviz-gnome' Initializing Target Loading repository data... Reading installed packages... Force resolution: Yes Selecting 'graphviz-gnome-2.38.0-3.29.x86_64' for removal. Resolving package dependencies... Force resolution: Yes
The following package is going to be REMOVED: graphviz-gnome 2.38.0-3.29
1 package to remove. After the operation, 104.7 KiB will be freed. Continue? [y/n/? shows all options] (y): committing (1/1) Removing graphviz-gnome-2.38.0-3.29.x86_64 ..........................................................................................................................................................................[done] CommitResult (total 1, done 1, error 0, skipped 0, updateMessages 0) Checking for running processes using deleted libraries... arbuthnot:/data/packages # dot -Txxx Format: "xxx" not recognized. Use one of: canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pic plain plain-ext png pov ps ps2 svg svgz tk vml vmlz vrml wbmp xdot xdot1.2 xdot1.4 ^^^ # On my 42.2 system this is possible.
That's not the same. You also have to remove the packages that were pulled in by graphiz-gnome to get the same state as in a package build.
Andreas.
It would be impossible to remove pango and cairo without breaking my system. Thanks for pointing out that dot -Tpng needs graphviz-gnome, the interesting part is the quiet failure of gcc6 and under.
Dave P
On Thursday 2017-03-30 07:54, Dave Plater wrote:
It would be impossible to remove pango and cairo without breaking my system. Thanks for pointing out that dot -Tpng needs graphviz-gnome, the interesting part is the quiet failure of gcc6 and under.
For png you need graphviz-gd. graphviz-gnome may just need that too.
On 30/03/2017 09:33, Jan Engelhardt wrote:
On Thursday 2017-03-30 07:54, Dave Plater wrote:
It would be impossible to remove pango and cairo without breaking my system. Thanks for pointing out that dot -Tpng needs graphviz-gnome, the interesting part is the quiet failure of gcc6 and under.
For png you need graphviz-gd. graphviz-gnome may just need that too.
I tried graphviz-gd, only graphviz-gnome pulls in pango/cairo which dot needs for png support.
Dave P
On Thursday 2017-03-30 09:38, Dave Plater wrote:
On 30/03/2017 09:33, Jan Engelhardt wrote:
On Thursday 2017-03-30 07:54, Dave Plater wrote:
It would be impossible to remove pango and cairo without breaking my system. Thanks for pointing out that dot -Tpng needs graphviz-gnome, the interesting part is the quiet failure of gcc6 and under.
For png you need graphviz-gd. graphviz-gnome may just need that too.
I tried graphviz-gd, only graphviz-gnome pulls in pango/cairo which dot needs for png support.
Just saying that I have no graphviz-gnome installed (on 42.2) and still have png.
On 30/03/2017 09:39, Jan Engelhardt wrote:
On Thursday 2017-03-30 09:38, Dave Plater wrote:
On 30/03/2017 09:33, Jan Engelhardt wrote:
On Thursday 2017-03-30 07:54, Dave Plater wrote:
It would be impossible to remove pango and cairo without breaking my system. Thanks for pointing out that dot -Tpng needs graphviz-gnome, the interesting part is the quiet failure of gcc6 and under.
For png you need graphviz-gd. graphviz-gnome may just need that too.
I tried graphviz-gd, only graphviz-gnome pulls in pango/cairo which dot needs for png support.
Just saying that I have no graphviz-gnome installed (on 42.2) and still have png.
I think graphviz gets png from cairo and pango libs but atm the mystery remains. Dave P
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<Mx, Cv>::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<class Mx, class Cv> 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.
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<Mx, Cv>::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<class Mx, class Cv> 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
On 27/03/2017 16:02, Richard Biener wrote:
Likely you have
I didn't have but I found the main developer had moved to github and dispatcher.h did have it. My knowledge of the intricacies of c++ is limited.
#ifndef DBUS_HAS_RECURSIVE_MUTEX typedef bool (*MutexFreeFn)(Mutex *mx); typedef bool (*MutexLockFn)(Mutex *mx); ^^^
returns bool but:
template<class Mx, class Cv> 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.
Tried this patch: --- include/dbus-c++/dispatcher.h.orig 2011-11-28 17:03:19.000000000 +0200 +++ include/dbus-c++/dispatcher.h 2017-03-28 11:13:28.571991579 +0200 @@ -267,6 +267,19 @@ struct Threading return new Mx; }
+#ifndef DBUS_HAS_RECURSIVE_MUTEX + static bool mutex_free(Mutex *mx) + { + delete mx; + return true; + } + + static bool mutex_lock(Mutex *mx) + { + mx->lock(); + return true; + } +#else static void mutex_free(Mutex *mx) { delete mx; @@ -276,6 +289,7 @@ struct Threading { mx->lock(); } +#endif
static void mutex_unlock(Mutex *mx) {
but it brought up other errors so I used the github version and it builds the examples and tests. I discovered that ffado had the same errors as the libdbus-c++ executables which forced me to fix it. Thanks for your help, Dave P