|
Lines 1454-1462
lt_dlexit ()
Link Here
|
| 1454 |
} |
1454 |
} |
| 1455 |
|
1455 |
|
| 1456 |
static int |
1456 |
static int |
| 1457 |
tryall_dlopen (handle, filename) |
1457 |
tryall_dlopen (handle, filename, useloader) |
| 1458 |
lt_dlhandle *handle; |
1458 |
lt_dlhandle *handle; |
| 1459 |
const char *filename; |
1459 |
const char *filename; |
|
|
1460 |
const char *useloader; |
| 1460 |
{ |
1461 |
{ |
| 1461 |
lt_dlhandle cur; |
1462 |
lt_dlhandle cur; |
| 1462 |
lt_dlloader *loader; |
1463 |
lt_dlloader *loader; |
|
Lines 1514-1519
tryall_dlopen (handle, filename)
Link Here
|
| 1514 |
|
1515 |
|
| 1515 |
while (loader) |
1516 |
while (loader) |
| 1516 |
{ |
1517 |
{ |
|
|
1518 |
if (useloader && strcmp(loader->loader_name, useloader)) |
| 1519 |
{ |
| 1520 |
loader = loader->next; |
| 1521 |
continue; |
| 1522 |
} |
| 1517 |
lt_user_data data = loader->dlloader_data; |
1523 |
lt_user_data data = loader->dlloader_data; |
| 1518 |
|
1524 |
|
| 1519 |
cur->module = loader->module_open (data, filename); |
1525 |
cur->module = loader->module_open (data, filename); |
|
Lines 1556-1562
find_module (handle, dir, libdir, dlname
Link Here
|
| 1556 |
/* try to open the old library first; if it was dlpreopened, |
1562 |
/* try to open the old library first; if it was dlpreopened, |
| 1557 |
we want the preopened version of it, even if a dlopenable |
1563 |
we want the preopened version of it, even if a dlopenable |
| 1558 |
module is available */ |
1564 |
module is available */ |
| 1559 |
if (old_name && tryall_dlopen(handle, old_name) == 0) |
1565 |
if (old_name && tryall_dlopen(handle, old_name, "dlpreload") == 0) |
| 1560 |
{ |
1566 |
{ |
| 1561 |
return 0; |
1567 |
return 0; |
| 1562 |
} |
1568 |
} |
|
Lines 1579-1585
find_module (handle, dir, libdir, dlname
Link Here
|
| 1579 |
} |
1585 |
} |
| 1580 |
|
1586 |
|
| 1581 |
sprintf (filename, "%s/%s", libdir, dlname); |
1587 |
sprintf (filename, "%s/%s", libdir, dlname); |
| 1582 |
error = (tryall_dlopen (handle, filename) != 0); |
1588 |
error = (tryall_dlopen (handle, filename, NULL) != 0); |
| 1583 |
LT_DLFREE (filename); |
1589 |
LT_DLFREE (filename); |
| 1584 |
|
1590 |
|
| 1585 |
if (!error) |
1591 |
if (!error) |
|
Lines 1611-1617
find_module (handle, dir, libdir, dlname
Link Here
|
| 1611 |
strcat(filename, objdir); |
1617 |
strcat(filename, objdir); |
| 1612 |
strcat(filename, dlname); |
1618 |
strcat(filename, dlname); |
| 1613 |
|
1619 |
|
| 1614 |
error = tryall_dlopen (handle, filename) != 0; |
1620 |
error = tryall_dlopen (handle, filename, NULL) != 0; |
| 1615 |
LT_DLFREE (filename); |
1621 |
LT_DLFREE (filename); |
| 1616 |
if (!error) |
1622 |
if (!error) |
| 1617 |
{ |
1623 |
{ |
|
Lines 1634-1640
find_module (handle, dir, libdir, dlname
Link Here
|
| 1634 |
} |
1640 |
} |
| 1635 |
strcat(filename, dlname); |
1641 |
strcat(filename, dlname); |
| 1636 |
|
1642 |
|
| 1637 |
error = (tryall_dlopen (handle, filename) != 0); |
1643 |
error = (tryall_dlopen (handle, filename, NULL) != 0); |
| 1638 |
LT_DLFREE (filename); |
1644 |
LT_DLFREE (filename); |
| 1639 |
if (!error) |
1645 |
if (!error) |
| 1640 |
{ |
1646 |
{ |
|
Lines 1749-1755
find_file (basename, search_path, pdir,
Link Here
|
| 1749 |
strcpy(filename+lendir, basename); |
1755 |
strcpy(filename+lendir, basename); |
| 1750 |
if (handle) |
1756 |
if (handle) |
| 1751 |
{ |
1757 |
{ |
| 1752 |
if (tryall_dlopen (handle, filename) == 0) |
1758 |
if (tryall_dlopen (handle, filename, NULL) == 0) |
| 1753 |
{ |
1759 |
{ |
| 1754 |
result = (lt_ptr) handle; |
1760 |
result = (lt_ptr) handle; |
| 1755 |
goto cleanup; |
1761 |
goto cleanup; |
|
Lines 2063-2069
lt_dlopen (filename)
Link Here
|
| 2063 |
/* lt_dlclose()ing yourself is very bad! Disallow it. */ |
2069 |
/* lt_dlclose()ing yourself is very bad! Disallow it. */ |
| 2064 |
LT_DLSET_FLAG (handle, LT_DLRESIDENT_FLAG); |
2070 |
LT_DLSET_FLAG (handle, LT_DLRESIDENT_FLAG); |
| 2065 |
|
2071 |
|
| 2066 |
if (tryall_dlopen (&newhandle, 0) != 0) |
2072 |
if (tryall_dlopen (&newhandle, 0, NULL) != 0) |
| 2067 |
{ |
2073 |
{ |
| 2068 |
LT_DLFREE (handle); |
2074 |
LT_DLFREE (handle); |
| 2069 |
return 0; |
2075 |
return 0; |
|
Lines 2368-2374
lt_dlopen (filename)
Link Here
|
| 2368 |
#ifdef LTDL_SYSSEARCHPATH |
2374 |
#ifdef LTDL_SYSSEARCHPATH |
| 2369 |
&& !find_file (basename, sys_search_path, 0, &newhandle) |
2375 |
&& !find_file (basename, sys_search_path, 0, &newhandle) |
| 2370 |
#endif |
2376 |
#endif |
| 2371 |
)) && tryall_dlopen (&newhandle, filename)) |
2377 |
)) && tryall_dlopen (&newhandle, filename, NULL)) |
| 2372 |
{ |
2378 |
{ |
| 2373 |
LT_DLFREE (handle); |
2379 |
LT_DLFREE (handle); |
| 2374 |
goto cleanup; |
2380 |
goto cleanup; |