bluez-utils 3.30, uClibc, hcid, plugin handling

Wolfram Joost <[email protected]>
Newsgroups gmane.linux.bluez.devel
Message-ID <[email protected]>
Hello,

I had some trouble using hcid from bluez-utils 3.30 on my openwrt-router.
Openwrt uses uClibc, not glibc.

I discovered the following two problems:

1. In eglib/gmodule.c, function g_module_open, line 29 dlopen is used.
The flags for dlopen come from hcid/plugin.c, function plugin_init, line 94.
The flag-value is 0. According to the manpage of dlopen
(http://www.kernel.org/pub/linux/docs/manpages/man-pages-2.79.tar.bz2),
one of RTLD_LAZY or RTLD_NOW has to be set. uClibc checks this and returns an error.

2. hcid needs to be linked with -rdynamic or --export-dynamic. Some functions
in the hcid-executable are used by the plugins. Without -rdynamic uClibc
doesn't resolve the symbols in the plugins resulting in a NULL pointer
dereference and a SIGSEGV. Again, its documented in the man-page of
dlopen.

Wolfram

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.