Bug 1401339 - Look for libcurl under platform-specific paths; r=Dexter

MozReview-Commit-ID: 6wijqLsar56

--HG--
extra : rebase_source : b91e486f996c0d77cc87919468417c2b428eef2c
extra : amend_source : 4a1af35b3bf927737cd2b35c849da9a220297fcc
This commit is contained in:
Gabriele Svelto 2017-09-22 15:06:22 +02:00
Родитель f67ab8c057
Коммит 554fd69bd2
1 изменённых файлов: 28 добавлений и 12 удалений

Просмотреть файл

@ -80,29 +80,45 @@ CurlWrapper::~CurlWrapper()
bool
CurlWrapper::Init()
{
// libcurl might show up under different names, try them all until we find it
const char* libcurlPaths[] = {
"/usr/lib",
#ifdef XP_LINUX
"/usr/lib32",
"/usr/lib64",
"/usr/lib/i386-linux-gnu", // Debian 32-bit x86
"/usr/lib/x86_64-linux-gnu", // Debian 64-bit x86
#endif // XP_LINUX
};
const char* libcurlNames[] = {
#ifdef XP_LINUX
"libcurl.so",
"libcurl.so.4",
// Debian gives libcurl a different name when it is built against GnuTLS
"libcurl-gnutls.so",
"libcurl-gnutls.so.4",
// Older libcurl if we can't find anything better
// Older versions in case we find nothing better
"libcurl.so.3",
#ifndef HAVE_64BIT_BUILD
// 32-bit versions on 64-bit hosts
"/usr/lib32/libcurl.so",
"/usr/lib32/libcurl.so.4",
"/usr/lib32/libcurl-gnutls.so.4",
"/usr/lib32/libcurl.so.3",
#endif
"libcurl-gnutls.so.3", // See above for Debian
#elif defined(XP_MACOSX)
// macOS
"libcurl.dylib",
"libcurl.4.dylib",
"libcurl.3.dylib"
"libcurl.3.dylib",
#endif
};
for (const char* libname : libcurlNames) {
mLib = dlopen(libname, RTLD_NOW);
// libcurl might show up under different names, try them all until we find it
for (const char* libpath : libcurlPaths) {
for (const char* libname : libcurlNames) {
string fullpath = string(libpath) + "/" + libname;
mLib = dlopen(fullpath.c_str(), RTLD_NOW);
if (mLib) {
break;
}
}
if (mLib) {
break;