On Fri, 19 Aug 2011 21:08:54 +0200 Antonio Ospite <ospite@xxxxxxxxxxxxxxxxx> wrote: > On Fri, 19 Aug 2011 10:58:02 +0200 > Antonio Ospite <ospite@xxxxxxxxxxxxxxxxx> wrote: > > > On Thu, 18 Aug 2011 16:18:57 -0700 > > Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: > > > [...] > > > > > > I rather have the Sixaxis plugin being an external plugin only then. So > > > you are not allowed to make this builtin. > > > > > > > Marcel, I guess that an _external_ plugin in BlueZ context is one which > > is not embedded in the bluetoothd binary but rather distributed as a > > shared object, isn't it? Are there examples of such a plugin in bluez > > tree I can copy from? > > > > OK, I think I've got it, it is external-dummy, this is how I did it: > > --- > Makefile.am | 10 ++++++---- > 1 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/Makefile.am b/Makefile.am > index 4bcff4d..ff33bf0 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -230,8 +230,10 @@ builtin_sources += thermometer/main.c \ > endif > > if SIXAXISPLUGIN > -builtin_modules += sixaxis > -builtin_sources += plugins/sixaxis.c > +plugin_LTLIBRARIES += plugins/sixaxis.la > +plugins_sixaxis_la_SOURCES = plugins/sixaxis.c > +plugins_sixaxis_la_LDFLAGS = -module -avoid-version -no-undefined @UDEV_LIBS@ > +plugins_sixaxis_la_CFLAGS = -fvisibility=hidden @DBUS_CFLAGS@ @GLIB_CFLAGS@ @UDEV_CFLAGS@ > endif > This is not enough, the external plugin can be compiled but I can be used at runtime because it is using functions from src/storage.c and others, which seem to be embedded inside bluetoothd only, so I get: bluetoothd[23459]: Can't load plugin \ /home/ao2/Proj/PS3/PS3_sixaxis/bluez/plugins/.libs/playstation-peripheral.so: \ /home/ao2/Proj/PS3/PS3_sixaxis/bluez/plugins/.libs/playstation-peripheral.so: \ undefined symbol: write_device_name I could link the needed object files like storage.o and company into the plugin binary, but definitely this doesn't look OK. Should a shared library provide those "utility" functions to bluetoothd _and_ external plugins? This plugin is the first non-trivial external plugin I can see in the tree, so maybe this problem has never showed up before. Thanks, Antonio -- Antonio Ospite http://ao2.it PGP public key ID: 0x4553B001 A: Because it messes up the order in which people normally read text. See http://en.wikipedia.org/wiki/Posting_style Q: Why is top-posting such a bad thing?
Attachment:
pgpvklJ83TsCN.pgp
Description: PGP signature