Thread (1 message) 1 message, 1 author, 2011-08-25

Re: [PATCH BlueZ 3/4] Link to udev only when needed

From: Antonio Ospite <hidden>
Date: 2011-08-25 14:14:54
Also in: linux-input

On Fri, 19 Aug 2011 21:08:54 +0200
Antonio Ospite [off-list ref] wrote:
quoted hunk
On Fri, 19 Aug 2011 10:58:02 +0200
Antonio Ospite [off-list ref] wrote:
quoted
On Thu, 18 Aug 2011 16:18:57 -0700
Marcel Holtmann [off-list ref] wrote:
[...]
quoted
quoted
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?

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help