Hi there,
I'm currently trying to get the VoIP plugin to work under FreeBSD. After this patch I was able to build it:
But I can't get RetroShare to load it:
Now the symbol is part of the RetroShare binary:
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
but still to no avail. My knowledge of ELF binaries is pretty sparse, so if someone has more clues, I would appreciate sharing 
P.S. I also posted this question on the RetroShare forum
Greetings glocke
I'm currently trying to get the VoIP plugin to work under FreeBSD. After this patch I was able to build it:
Code:
--- 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)
Code:
Found plugin /home/user/.retroshare/extensions/libVOIP.so
Loading plugin...
Loading plugin /home/user/.retroshare/extensions/libVOIP.so
-> hashing.
-> hash = 48a533b3f1f94124419484e866f08ed3d632b356
-> hash authorized. Loading plugin.
Cannot open plugin: /home/user/.retroshare/extensions/libVOIP.so: Undefined symbol "_ZN9p3Service7receiveEP9RsRawItem"
Examined a total of 1 plugins.
Code:
$ grep _ZN9p3Service7receiveEP9RsRawItem work/trunk/retroshare-gui/src/RetroShare
Binary file work/trunk/retroshare-gui/src/RetroShare matches
So I rebuilt RetroShare with the -export-dynamic option, and the symbol ist part of the symbol table: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().
Code:
$ objdump -t work/trunk/retroshare-gui/src/RetroShare | grep _ZN9p3Service7receiveEP9RsRawItem
0000000000809580 g F .text 00000000000000c7 _ZN9p3Service7receiveEP9RsRawItem

P.S. I also posted this question on the RetroShare forum
Greetings glocke