Lines 1435-1449
Link Here
|
1435 |
Needed_Entry *needed; |
1435 |
Needed_Entry *needed; |
1436 |
|
1436 |
|
1437 |
for (needed = obj->needed; needed != NULL; needed = needed->next) { |
1437 |
for (needed = obj->needed; needed != NULL; needed = needed->next) { |
1438 |
obj1 = needed->obj = load_object(obj->strtab + needed->name, obj, |
1438 |
const char *name = obj->strtab + needed->name; |
1439 |
flags & ~RTLD_LO_NOLOAD); |
1439 |
char *path = find_library(name, obj); |
1440 |
if (obj1 == NULL && !ld_tracing) |
1440 |
|
|
|
1441 |
if (path == NULL && !ld_tracing) |
1441 |
return -1; |
1442 |
return -1; |
1442 |
if (obj1 != NULL && obj1->z_nodelete && !obj1->ref_nodel) { |
1443 |
|
1443 |
dbg("obj %s nodelete", obj1->path); |
1444 |
if (path) { |
1444 |
init_dag(obj1); |
1445 |
obj1 = needed->obj = load_object(path, obj, |
1445 |
ref_dag(obj1); |
1446 |
flags & ~RTLD_LO_NOLOAD); |
1446 |
obj1->ref_nodel = true; |
1447 |
if (obj1 == NULL && !ld_tracing) |
|
|
1448 |
return -1; |
1449 |
if (obj1 != NULL && obj1->z_nodelete && !obj1->ref_nodel) { |
1450 |
dbg("obj %s nodelete", obj1->path); |
1451 |
init_dag(obj1); |
1452 |
ref_dag(obj1); |
1453 |
obj1->ref_nodel = true; |
1454 |
} |
1447 |
} |
1455 |
} |
1448 |
} |
1456 |
} |
1449 |
} |
1457 |
} |