Hi Fons, On 3/23/21 9:59 PM, Fons Adriaensen wrote: > If by that you mean it can't use dynamic libs, then how do > you arrive at that conclusion ?
It is motivated by running plugins in process to avoid context switches. Say you have 2 plugins, one using aubio.so.2 the other aubio.so.3, or different plugins using different versions of libavresample.so Distros often bundle multiple major versions of libraries and that is fine as long as a given ABI of that library is only used by different processes. But when you want to load plugins into a host, they will conflict. Another example where this happened in the past was fftw. Then this also extends to various GUI toolkit conflicts (gtk 2/3/4 cannot co-exist in the same memory space, nor can QT 4/5/6). Plugins should be self-contained and not depend on external libs (except for ones with a client/server interface where the lib needs to match the server e.g. X11, openGL -- but those have versioned symbols and a stable ABI). As added benefit, this increases reliability when distributing plugin binaries: The plugin does not use some random library version found on the target system. Cheers! robin References: https://ardour.org/plugins-in-process.html https://gist.github.com/abique/4c1b9b40f3413f0df1591d2a7c760db4 https://linuxmusicians.com/viewtopic.php?p=84986#p84986 _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev