pulseaudio fails to load some modules with uClibc, works with glibc
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Thu Oct 23 16:27:07 UTC 2014
Hello,
When trying to load the module-echo-cancel in Pulseaudio, the module
loading fails with:
pulseaudio: symbol 'pa_echo_canceller_set_capture_volume': can't resolve symbol
pulseaudio: symbol 'pa_echo_canceller_get_capture_volume': can't resolve symbol
E: [pulseaudio] ltdl-bind-now.c: Failed to open module /usr/lib/pulse-5.0/modules/module-echo-cancel.so: Unable to resolve symbol
However, both of those functions are defined in the .so library itself:
29: 000080dc 36 FUNC GLOBAL DEFAULT 11 pa_echo_canceller_get_capture_volume
46: 00008100 140 FUNC GLOBAL DEFAULT 11 pa_echo_canceller_set_capture_volume
This is using a uClibc toolchain built with Buildroot, where we use
uClibc 0.9.33.2 + a number of patches (see
http://git.buildroot.net/buildroot/tree/package/uclibc/0.9.33.2).
The exact same system, built with a glibc toolchain (Linaro toolchain),
makes pulseaudio happy, as it loads the module-echo-cancel.so module
flawlessly.
So it seems like a difference in behavior between uClibc and glibc.
You'll find the module-echo-cancel.so binary at
http://free-electrons.com/~thomas/module-echo-cancel.so if you want to
inspect things.
Any idea?
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the uClibc
mailing list