Re: [ecasound] Gteca errors

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [ecasound] Gteca errors
From: Kai Vehmanen (k_AT_eca.cx)
Date: Sun Oct 14 2001 - 23:13:19 EEST


On Sun, 14 Oct 2001, Luis Pablo Gasparotto wrote:

> I'm trying to use Gteca and I get this error:
> bash-2.04# ./Gteca
> Traceback (most recent call last):
> File "./heteca.py", line 6, in ?
> main()
[...]
> ImportError: undefined symbol: kvu_numtostr__Fdi
> bash-2.04#
[...]
> I'm using SuSE 7.1 with Kernel 2.4.9. Libglade, Libglade-development,
> Python 2.0, Python Gtk, Gtk, Gtk Development and Ecasound 2.1.0dev are
> installed.

This probably caused by libpyecasound being linked to a wrong version
of libkvutils. I can get around this by running pyecasound programs
using:

LD_PRELOAD=/usr/local/eca/lib/libkvutils.so.2.1.0 ./eci.py

The /usr/local/eca is where I have installed ecasound 2.1dev0. You can
check this using:

ldd /usr/local/lib/python2.0/site-packages/libpyecasound.so

... or whereever python packages are on your system. Without the
LD_PRELOAD, output looks like:

        libecasound_debug.so.8 => /usr/local/eca/lib/libecasound_debug.so.8 (0x4000e000)
        libkvutils.so.2 => /usr/local/lib/libkvutils.so.2 (0x40237000)

And this is wrong. We are linking against old libkvutils.

This is a somewhat annoying feature of using dynamic linking (and
libtool). The libkvutils that comes with ecasound 2.1 is compatible with
the older libkvutils that comes with ecasound 2.0, but not the other way
around. Still, if both libkvutils.so.2.0.0 and libkvutils.so.2.1.0 are
installed, ldd tries to link 2.1 apps against the old libkvutils if it
comes first in directories mentioned in /etc/ld.so.conf. And this will
cause the above error.

You can get around this by explicitly specifying -rpath when compiling the
binaries. This is why this problem doesn't appear with ecasound itself,
ecaplay, etc... But for some reason automake/autoconf/libtool system adds
rpath only in some circumstances. I still haven't figured out what
the exact logic is behind it. Of course one could hack the makefiles and
bypass libtool, but this would without doubt break compiling on some
systems.

PS A more straightforward fix is to remove the old libkvutils.so.2.0.0
   and re-run /sbin/ldconfig ... you possibly need to add the
   lib-directory to which you installed ecasound 2.1, to
   /etc/ld.so.conf ...

-- 
 http://www.eca.cx
 Audio software for Linux!

-- To unsubscribe send message 'unsubscribe' in the body of the message to <ecasound-list-request_AT_wakkanet.fi>.


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sun Oct 14 2001 - 23:10:41 EEST