* Florian Weimer:
On 07/17/2018 04:08 PM, Kamil Dudka wrote:
> On Tuesday, July 17, 2018 2:24:04 PM CEST Matus Honek wrote:
>> Florian is right, the idea is to make changes to the source code
>> (probably a downstream patch will be needed) such that the threaded
>> library will be built twice, once with libldap soname and once with
>> libldap_r soname, and the non-threaded libldap won't be shipped at
>> The non-threaded version basically provides a subset of capabilities of
>> the threaded version, which are additionally thread safe
>> (i.e. mutexes). There shouldn't be really any noticeable change.
>> Does this make sense?
> So can it happen that both the libraries will be loaded at the same time
> by a single process (one of them for example through libcurl)?
> Will everything work as expected in this case?
It's certainly quite risky, and many things can go wrong (dlopen of
the dormant copy of the library, ELF constructors running twice).
Matus, have you considered turning libldap.so into a linker script
(referencing libdap_r.so) and libldap-2.4.so.2 into a stub which only
depends on libldap_r-2.4.so.2? The dynamic linker will then search
libldap_r if the application links against libldap.
FYI, I have a downstream patch for this which is undergoing review.