Hi,
> For example, I load libusb-1.0.so and librtlsdr.so with
> dlopen and then get the functions with dlsym. This often
> works well, but under some Linux distributions a call to
> libusb_init from librtlsdr does not point to the proper
> address.
Well, in itself a different function pointer is not necessarily a problem.
It could just be that the pointer value inside the lib points to a
stub that does lazy loading. With modern distrib and 64 bits and all
the security stuff with ASLR (address space layout randomization), PIE
and all that stuff, that seems to be a probable explanation.
What would be interesting to see is _what_ exactly is at that address
and see why it fails.
Cheers,
Sylvain