[alsa-devel] Compiling an Alsa plugin with Intel compiler.

Takashi Iwai tiwai at suse.de
Thu Sep 25 15:09:44 CEST 2008


At Thu, 25 Sep 2008 14:27:28 +0300,
Motti Daniel wrote:
> 
> Takashi Iwai wrote:
> 
>     At Thu, 25 Sep 2008 13:13:14 +0300,
>     Motti Daniel wrote:
> 
>         Hello people!
>         
>         I'm working on an Alsa plugin for the Xandros Linux distribution
>         my plugin runs very well except it consume about 20% of resources
>         from the target machine (eee pc at 1.6Ghz)
>         I'm trying to compile the same code with Intel Compiler (version 10.1.017)
>         (before that it was compiled with gcc 4.1.2)
>         the plugin compiles well but when I try to play music it tells me that
>         the plugin library (the .so file in /usr/lib/alsa-lib/ is not there.
> 
>     What exactly is the error message?
>     It's a big difference between non-existing file and non-defined
>     symbol.
> 
> This is the error:
> 
> /home/user> aplay aint.wav
> ALSA lib pcm.c:2106:(snd_pcm_open_conf) Cannot open shared library /usr/lib/
> alsa-lib/libasound_module_pcm_maxxaudio.so
> aplay: main:550: audio open error: No such file or directory
> /home/user> ls -la /usr/lib/alsa-lib/libasound_module_pcm_maxxaudio.so
> -rw-r--r-- 1 root root 14944 2008-09-23 23:31 /usr/lib/alsa-lib/
> libasound_module_pcm_maxxaudio.so
> /home/user> sudo rm /usr/lib/alsa-lib/libasound_module_pcm_maxxaudio.so
> /home/user> aplay aint.wav
> ALSA lib pcm.c:2106:(snd_pcm_open_conf) Cannot open shared library /usr/lib/
> alsa-lib/libasound_module_pcm_maxxaudio.so
> aplay: main:550: audio open error: No such file or directory
> 
> as you can see the file exist and when I erased it I get the same message

Then it's the error from snd_dlopen().  Likely missing ifdef or so...

>         I tried to analyze the symbols in the executable and found that the
>         difference between gcc and Intel compiler is a list of symbols with
>         a suffix __FUNCTION__ or __PRETTY_FUNCTION__
>         is this the problem?
> 
>     I don't think so.  These should be replaced at compile time, and you
>     must get relevant compile errors/warnings.
> 
> The only warning I get it about unused variables.

Then these were handled properly.

>         any suggestions?
>         can you tell me  what are the minimum alsa requirements from a dynamic
>         library so it can be loaded and run as an Alsa plugin?
> 
>     First, check whether your plugin was properly opened and symbol
>     resolution worked.  The alsa-lib calls snd_dlopen() to open the
>     plugin, and call snd_dlsym() for symbols.  Catch them via gdb or so.
>     
>     There are configure checks for dlopen, etc, defining
>     CONFIG_HAVE_LIBDL.  Make sure that this passed in your case.
> 
> Thanks! I'll try that...

Also make sure that you compile with -DPIC.  Usually configure checks
it, but I'm not sure whether it works for icc.


Takashi


More information about the Alsa-devel mailing list