On Fri, Oct 26, 2001 at 03:37:40PM -0400, Andy Wingo wrote: > 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.
Seems to me that gst_bytestream_peek_bytes might be used as part of the libraries _init code. Which means RTLD_LAZY wont help it. -- .----------=======-=-======-=========-----------=====------------=-=-----. / Ben Collins -- Debian GNU/Linux \ ` [EMAIL PROTECTED] -- [EMAIL PROTECTED] -- [EMAIL PROTECTED] ' `---=========------=======-------------=-=-----=-===-======-------=--=---'