On Tue, 17 Sep 2002, Juergen Kreileder wrote:

> Tim Goetze <[EMAIL PROTECTED]> writes:
> 
> > Florian Bomers wrote:
> > 
> >>Why does this happen ? I searched the mailing list archive and only
> >>found an explanation that symbols don't match and I need to
> >>recompile the ALSA lib. In my case it's a clean install of ALSA on a
> >>newly installed red hat system. There was never any other version of
> >>ALSA.
> > 
> > you probably are calling alsa from a shared object -- try 
> > 
> >   dlopen ("libasound.so", RTLD_LAZY | RTLD_GLOBAL);
> > 
> > in your module's init function.
> 
> The need for RTLD_GLOBAL is somewhat ugly, usually one wants to load
> plugins with RTLD_LOCAL.  E.g. Java's System.load()/loadLibrary()
> doesn't use RTLD_GLOBAL.  We could make a special case for ALSA in our
> Java implementation but that won't help people running JMF with
> another JVM.
> 
> Is there any reason ALSA can't do something like 
> 
>    if (name == NULL) {
>        Dl_info dlinfo;
>        static int dummy;
>        dladdr((void *) &dummy, &dlinfo);
>        name = dlinfo.dli_fname;
>    }
> 
> in snd_dlopen()?  This would fix the snd_dlopen(NULL, ...) problem
> when the ALSA library has been dlopened with RTLD_LOCAL and the
> symbols are unknown in the main program.

Nice fix. Applied.

                                                Jaroslav

-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project  http://www.alsa-project.org
SuSE Linux    http://www.suse.com



-------------------------------------------------------
Sponsored by: AMD - Your access to the experts on Hammer Technology! 
Open Source & Linux Developers, register now for the AMD Developer 
Symposium. Code: EX8664 http://www.developwithamd.com/developerlab
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to