libc6 dlopen problem
Greetings,
I've been having a number of issues this afternoon with the dlopen() facility on
my debian unstable system. I didn't want to submit a bug report until I was
sure, so here it is:
$ cat test-dlopen.c
#include <dlfcn.h>
#include <stdio.h>
int main(int argc, char* argv[]) {
void *handle = dlopen(argv[1], RTLD_LAZY);
if (!handle)
puts(dlerror());
exit(0);
}
$ gcc -ldl -o test-dlopen test-dlopen.c && ./test-dlopen ./libalsa.so
./libalsa.so: undefined symbol: gst_bytestream_peek_bytes
$
This is crazy irritating. With the .so I'm testing, I load another library that
defines those symbols before they get a chance to be called. Isn't that what
RTLD_LAZY is supposed to do? This used to work, I'm thinking it's a libc6 bug.
Running this little test program on other machines works with the exact same
code that produced libalsa.so, so I don't think it's that issue. Please let me
know if this is my problem or someone else's, as I'm a bit frustrated right now
:-\ BTW, the same thing occurs with gcc 2.95.4 and 3.0.2.
Thanks very much in advance,
Andy
ii libc6 2.2.4-3 GNU C Library: Shared libraries and
ii binutils 2.11.92.0.10-1 The GNU assembler, linker and binary
Reply to: