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