net-p2p/retroshare VoIP plugin: Undefined symbol
Konstantin Belousov
kostikbel at gmail.com
Sat Nov 3 14:53:48 UTC 2012
On Sat, Nov 03, 2012 at 01:59:18PM +0100, Peter Klett wrote:
>
> Hi All,
>
> I'm currently trying to get the VoIP plugin from RetroShare to work
> under FreeBSD.
> After this patch I was able to build it:
>
> --- plugins/VOIP/services/rsvoipitems.cc~ 2012-02-26
> 18:13:54.000000000 +0100
> +++ plugins/VOIP/services/rsvoipitems.cc 2012-10-29
> 12:53:56.650925587 +0100
> @@ -182,7 +182,7 @@
> ok &= setRawUInt32(data, tlvsize, &offset, flags);
> ok &= setRawUInt32(data, tlvsize, &offset, data_size);
> std::cerr << "data_size : " << data_size << std::endl;
> - memcpy(data+offset,voip_data,data_size) ;
> + memcpy(&((uint8_t*)data)[offset],voip_data,data_size) ;
> offset += data_size ;
>
> if (offset != tlvsize)
>
> But I can't get RetroShare to load it:
>
> Cannot open plugin: /home/user/.retroshare/extensions/libVOIP.so:
> Undefined symbol "_ZN9p3Service7receiveEP9RsRawItem"
>
> Now the symbol is part of the RetroShare binary:
>
> $ grep _ZN9p3Service7receiveEP9RsRawItem
> work/trunk/retroshare-gui/src/RetroShare
> Binary file work/trunk/retroshare-gui/src/RetroShare matches
>
> but somehow the symbols from the main binary do not get exported to the
> plugin.
> The FreeBSD man page for dlopen(3) states in the NOTES section
>
> ELF executables need to be linked using the -export-dynamic option to
> ld(1) for symbols defined in the executable to become visible to
> dlsym().
>
>
> So I rebuilt RetroShare with the -export-dynamic option, and the symbol
> is part of the symbol table:
>
> $ objdump -t work/trunk/retroshare-gui/src/RetroShare | grep
> _ZN9p3Service7receiveEP9RsRawItem
> 0000000000809580 g F .text 00000000000000c7
> _ZN9p3Service7receiveEP9RsRawItem
>
> but still to no avail (same undefined symbol error).
> My knowledge of ELF binaries is pretty sparse, so if someone has more
> clues, I would appreciate sharing :)
The objdump -t dumps wrong table. You want to examine the output of -T
AKA --dynamic-syms.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20121103/a9ccc113/attachment.sig>
More information about the freebsd-ports
mailing list