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]  '
 `---=========------=======-------------=-=-----=-===-======-------=--=---'

Reply via email to