Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Kamel Bouhara <kamel.bouhara@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/dbus-cpp: new patch to fix dbus c++ threading issue
Date: Mon, 20 Jul 2020 14:38:36 +0200	[thread overview]
Message-ID: <20200720123836.GB3477@kb-xps> (raw)
In-Reply-To: <20200712111247.118e8aae@windsurf.home>

On Sun, Jul 12, 2020 at 11:12:47AM +0200, Thomas Petazzoni wrote:
> Hello Kamel,
>

Hello Thomas,

> On Mon,  6 Jul 2020 17:33:55 +0200
> Kamel Bouhara <kamel.bouhara@bootlin.com> wrote:
>
> > From: https://sourceforge.net/p/dbus-cplusplus/patches/18/
> >
> > dispatcher.h has invalid template code. When DBUS_HAS_RECURSIVE_MUTEX is
> > MutexFreeFn and MutexLockFn become of type void and the code is valid.
> > See lines 232-235.
> > However, when a user #includes dispatcher.h directly or indirectly the
> > macro DBUS_HAS_RECURSIVE_MUTEX is undefined. This makes the above
> > function pointers defined of type bool and but then _init_threading
> > function call in line 259 becomes invalid, as it passes function
> > pointers to mutex_free and mutex_lock which or of type void.
> >
> > Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com>
> > ---
> >  .../dbus-cpp/0004-dbus-c++-threading.patch    | 45 +++++++++++++++++++
> >  1 file changed, 45 insertions(+)
> >  create mode 100644 package/dbus-cpp/0004-dbus-c++-threading.patch
> >
> > diff --git a/package/dbus-cpp/0004-dbus-c++-threading.patch b/package/dbus-cpp/0004-dbus-c++-threading.patch
> > new file mode 100644
> > index 0000000000..502320ad09
> > --- /dev/null
> > +++ b/package/dbus-cpp/0004-dbus-c++-threading.patch
> > @@ -0,0 +1,45 @@
>
> Thanks for your patch, but the patch itself needs a proper commit
> title, commit description and Signed-off-by. See
> https://buildroot.org/downloads/manual/manual.html#_format_and_licensing_of_the_package_patches.
>

Ok.

> Also, under what conditions does this build failure occurs ? We don't
> have any build failures for the dbus-cpp package in our autobuilders.
>

Actually, I have an application that depends on dbus-c++ and fails with
the following errors:

...
In file included from .../buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/dbus-c++-1/dbus-c++/server.h:34,
                 from .../buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/dbus-c++-1/dbus-c++/dbus.h:33,
                 from src/DbusComm/DBusGlobal.h:3,
                 from src/DbusComm/DBusGlobal.cpp:1:
 .../buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/dbus-c++-1/dbus-c++/dispatcher.h: In static member function ?static void DBus::Threading<Mx, Cv>::init()?:
 .../buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/dbus-c++-1/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*))?
     );
     ^
 .../buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/dbus-c++-1/dbus-c++/dispatcher.h:247:13: note: candidate: ?void DBus::_init_threading()?
 void DXXAPI _init_threading();
             ^~~~~~~~~~~~~~~
...

Which after some googling points me to the following thread:

https://sourceforge.net/p/dbus-cplusplus/patches/18/

The proposed patch applies to libdbus-c++ which is part of the dbus-cpp
package here. Applying this patch also fixed my application build issue.

> Finally, it looks like Ubuntu or Debian have a 5.0.x version of
> dbus-cpp, and we're at 0.9.0. It's really unclear what site really is
> the official upstream for this project.
>
> The SourceForge project points to a Gitorious Git repository, but
> Gitorious has been shut down a few years ago. Then there is
> https://github.com/lib-cpp/dbus-cpp, but is that the same project ?
>

Im completely agree but the sf project seems the more relevant.

> Hm according to
> https://www.freedesktop.org/wiki/Software/DBusBindings/, dbus-c++
> (which we call dbus-cpp in Buildroot) is different from dbus-cpp. They
> also say that dbus-c++ has been inactive since 2011, and shouldn't be
> used.
>
> Perhaps we should instead remove this package entirely ? Do you have
> the possibility of moving to a properly maintained D-Bus C++ binding ?
>

I have several modules of my application dependending on it yet.

Thanks.

> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com

--
Kamel Bouhara, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

      reply	other threads:[~2020-07-20 12:38 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-06 15:33 [Buildroot] [PATCH] package/dbus-cpp: new patch to fix dbus c++ threading issue Kamel Bouhara
2020-07-12  9:12 ` Thomas Petazzoni
2020-07-20 12:38   ` Kamel Bouhara [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200720123836.GB3477@kb-xps \
    --to=kamel.bouhara@bootlin.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox