[Ardour-Users] ambix LV2 vs ardour?

Robin Gareus robin at gareus.org
Thu Feb 21 05:11:23 PST 2019


On 2/21/19 8:06 AM, Fernando Lopez-Lezcano wrote
> # ldd /usr/lib64/lv2/ambix_converter_o1.lv2/ambix_converter_o1.so
>     linux-vdso.so.1 (0x00007ffff87fa000)
>     libzita-convolver.so.3 => /lib64/libzita-convolver.so.3
> (0x00007f8f1047f000)
>     libX11.so.6 => /lib64/libX11.so.6 (0x00007f8f1033a000)
>     libXext.so.6 => /lib64/libXext.so.6 (0x00007f8f10325000)
>     libXinerama.so.1 => /lib64/libXinerama.so.1 (0x00007f8f10320000)
>     libasound.so.2 => /lib64/libasound.so.2 (0x00007f8f10218000)
>     libdl.so.2 => /lib64/libdl.so.2 (0x00007f8f10212000)
>     libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f8f10152000)
>     librt.so.1 => /lib64/librt.so.1 (0x00007f8f10148000)
>     libglut.so.3 => /lib64/libglut.so.3 (0x00007f8f10090000)
>     libXmu.so.6 => /lib64/libXmu.so.6 (0x00007f8f10073000)
>     libXi.so.6 => /lib64/libXi.so.6 (0x00007f8f10061000)
>     libGL.so.1 => /lib64/libGL.so.1 (0x00007f8f0ffcd000)
>     libGLU.so.1 => /lib64/libGLU.so.1 (0x00007f8f0ff59000)
>     libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8f0ff37000)
>     libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f8f0fd9f000)
>     libm.so.6 => /lib64/libm.so.6 (0x00007f8f0fc1b000)
>     libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8f0fc00000)
>     libc.so.6 => /lib64/libc.so.6 (0x00007f8f0fa3a000)
>     libfftw3f.so.3 => /lib64/libfftw3f.so.3 (0x00007f8f0f827000)
>     libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f8f0f7fc000)
>     /lib64/ld-linux-x86-64.so.2 (0x00007f8f10991000)
>     libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f8f0f7e9000)
>     libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f8f0f7b3000)
>     libz.so.1 => /lib64/libz.so.1 (0x00007f8f0f799000)
>     libICE.so.6 => /lib64/libICE.so.6 (0x00007f8f0f779000)
>     libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007f8f0f772000)
>     libXt.so.6 => /lib64/libXt.so.6 (0x00007f8f0f707000)
>     libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f8f0f6d3000)
>     libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f8f0f616000)
>     libXau.so.6 => /lib64/libXau.so.6 (0x00007f8f0f60f000)
>     libSM.so.6 => /lib64/libSM.so.6 (0x00007f8f0f604000)
>     libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f8f0f5fb000)
> 
> (so lots of things...)

Ok. I'm pretty sure that this is the issue. In particular if qtractor
loads it.

The solution is to statically link the plugin and hide its symbols
except for the entry point. Plugins should not depend on any external libs.

The short explanation is that Plugins cannot know about each other, and
hence must be self-contained.

---
Say you write a plugin that needs ffmpeg and uses the newer
libswresample2 interface, and another author writes a plugin that uses
the older libswresample1 API. Now you dynamically link both.

Distros may even package both library versions, and you can compile and
link, but if you load both at the same time in the same host, there is a
conflict.

[ from
http://lists.ardour.org/pipermail/ardour-users-ardour.org/2018-November/028948.html
]
---

In your case likely libfftw3f or zita-convolver that conflicts with
Ardour's use of it, but it could be any lib, including libstdc++ (except
X11).

Cheers!
robin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.ardour.org/pipermail/ardour-users-ardour.org/attachments/20190221/42df5216/attachment-0001.sig>


More information about the Ardour-Users mailing list