LINUX.ORG.RU

RTLD_LAZY


0

0

Открываю библиотеку

h = dlopen("/home/me/mylib.so",RTLD_LAZY);
if (!h) printf("%s",dlerror());

Получаю
undefined symbol: core_module

Символ core_module есть undefined. Это так. Но судя по манам и докам, если указан RTLD_LAZY, ошибки после dlopen быть не должно, а должна она всплыть после обращения к символу. 

help!

-> LD_BIND_NOW сброшен.
★★★

Вопрос снят, допер сам, у core_module тип релокации GLOB_DAT и run-time линкер соответственно пытается разрешить этот GOT entry при загрузке библиотеки. А RTLD_LAZY, есстесственно, распространяется на PLT entries (тип JUMP_SLOT).

Буду делать заглушки.

Chumka ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.