I'm trying to run a program I've written that opens a library with
dlopen("libname", RTLD_NOW). dlopen() succeeds without error and I can
use dlsym() to get a good address of an entry point in the .so, but global
symbols in the dlopen'ed library seem not to be resolved (they're null).
The really strange thing is that this only happens if I run my code as a
python extension through the python2.7 binary. If I invoke my code through
my own driver, things work fine.
Is there anything that python could be doing that would tell ld-musl not to
resolve all the symbols when dlopen'ing a library? The documentation I've
seen says that ld-musl always resolves all the symbols in a library when
dlopen() is called. Are there exceptions to this? Is there some way I can
trace the behavior of ld-musl?
Received on Wed Feb 07 2018 - 13:49:14 GMT