[alsa-devel] ["PATCH alsa-lib"] Change snd_dlopen() function to return the error string
Takashi Sakamoto
o-takashi at sakamocchi.jp
Mon Nov 27 19:19:51 CET 2017
Hi Jaroslav,
On Nov 27 2017 17:50, Jaroslav Kysela wrote:
> The dlopen() function might fail also for another reason than
> a missing file, thus return the error string from dlerror().
>
> Signed-off-by: Jaroslav Kysela <perex at perex.cz>
> ---
> include/global.h | 2 +-
> src/Versions.in | 5 +++++
> src/conf.c | 13 ++++++-----
> src/dlmisc.c | 60 +++++++++++++++++++++++++++++++++++++++----------
> src/hwdep/hwdep.c | 6 ++---
> src/mixer/simple_abst.c | 10 ++++-----
> src/pcm/pcm_hooks.c | 8 +++----
> src/pcm/pcm_meter.c | 6 ++---
> src/rawmidi/rawmidi.c | 6 ++---
> src/seq/seq.c | 6 ++---
> src/timer/timer.c | 6 ++---
> src/timer/timer_query.c | 6 ++---
> 12 files changed, 88 insertions(+), 46 deletions(-)
Unfortunately, this patch brings build error in my environment (Ubuntu
17.10 amd64, gcc7.2.0 from gcc-7 7.2.0-8ubuntu3).
$ ./gitcompile
$ make
make[2]: Entering directory '/tmp/alsa-lib/src'
CCLD libasound.la
/usr/bin/ld: unable to find version dependency `ALSA_1.1.6'
pcm/.libs/libpcm.a(pcm_generic.o): In function `snd1_pcm_generic_hwsync':
/tmp/alsa-lib/src/pcm/pcm_generic.c:142: warning:
collect2: error: ld returned 1 exit status
Makefile:491: recipe for target 'libasound.la' failed
make[2]: *** [libasound.la] Error 1
At present, I don't know exactly the reason, but I'll start
investigating it in next morning (I'd like to have sleep...).
I found some nitpicking.
1. 'modules/mixer/simple/sbasedl.c' calls this function but missing
changes in this patch.
(As I suggested to you in a previous Audiominiconf, it's good to us to
investigate simplification of the unused abstraction of 'simple' mixer
functionality.)
2. A line includes a tab only.
> diff --git a/src/dlmisc.c b/src/dlmisc.c
> index f154ebd0..fca843e1 100644
> --- a/src/dlmisc.c
> +++ b/src/dlmisc.c
> @@ -73,24 +79,49 @@ void *snd_dlopen(const char *name, int mode)
> ...
> +errpath:
> + if (errbuf)
> + snprintf(errbuf, errbuflen, "%s: %s", filename, dlerror());
> + return NULL;
> +
> #else
> return NULL;
> #endif
> }
Regards
Takashi Sakamoto
More information about the Alsa-devel
mailing list