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.
Juergen
--
Juergen Kreileder, Blackdown Java-Linux Team
http://www.blackdown.org/java-linux/java2-status/
-------------------------------------------------------
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