24.11.2016 в 00:37:01 +0100 Kurt Roeckx написал: > I've always had the impression that there are or used to be > probems using using dlopen()/dlsym(). Maybe related to some things > like RTDL_GLOBAL that causes the symbol lookup to go to the wrong > library. Do you know of any problems related to that?
Some applications (asterisk) use dlsym without dlopen (with RTLD_NEXT). This definitely asks for trouble if there are more than one libssl loaded. (All of the functions dlsym'ed by Asterisk were removed from libssl1.1 though.) > Note that QT is one of those that uses dlopen()/dlsym() when > calling openssl functions (for license reasons). At least RTLD_GLOBAL (ExportExternalSymbolsHint) seems to be in #ifdef Q_OS_OPENBSD in qsslsocket_openssl_symbols.cpp. qsslsocket_openssl_symbols.cpp also tries to load any libssl.* it can find (in directories gathered from dl_iterate_phdr) when it cannot find libssl.so.<SHLIB_VERSION_NUMBER>. This asks for trouble when libssl1.0.2 is not installed and probably needs to be patched out. (Or openssl-linked should be used. Or Breaks: libssl1.0.0, libssl1.1 looks necessary.)