Robin H. Johnson wrote:
> Comments:
> ---------
> In bug #4411, comment 43, vapier noted:
> > any package that does dlopen("libfoo.so") without the version info like 
> > ".so.X" is broken.
> In this case, the lt_dlopenext consumer is explicitly testing multiple
> versions of libusb at runtime, and picking the correct interface:
> it doesn't need to depend on a specific version.

vapier is still correct and the consumer is indeed broken, it does
too need to specify the .so version in the dlopen() call, at least
in the case of libusb.

It's fine for programs to try to dlopen() API providers for both
libusb-0.1 and libusb-1.0 APIs and use whichever they find, but that
MUST be done by full filename including ABI version in each call.

dev-libs/libusb-0.1 has only ever existed as libusb-0.1.so.4.4.4 so
either that or libusb-0.1.so.4 is what must be used with dlopen().

libusb-1.0 API providers are by design API as well as ABI incompatible
with libusb-0.1 so there is no way to get libusb-1.0 if you ask for
libusb-0.1.

I believe that libusb-0.1 being the way it is happened by accident
and I know that libusb-1.0 use of libtool is better but can still
improve.


> This is also because the lt_dlopenext interface does NOT accepted
> files versioned after the .so: it needs the filename with no extensions.

Hm, that seems limited?


//Peter

Reply via email to