[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