[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: