RE: [linux-audio-dev] LADSPA Update (http://www.ladspa.org)

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

Subject: RE: [linux-audio-dev] LADSPA Update (http://www.ladspa.org)
From: Richard W.E. Furse (richard_AT_muse.demon.co.uk)
Date: Fri May 19 2000 - 02:46:03 EEST


I was rather (pleasantly!) surprised that in fact dlopen() *does* support
chain linking as long as the library is told about the required library at
link time. The need to do this for C++ seems fairly clear unfortunately -
here are samples examples of command line linking the LADSPA SDK sine C++
example and then the CMT toolkit:

(1) Building LADSPA SDK sines, first with C++ introduced at ld stage, then
without:

[richard_AT_muse src]$ ld -o ../plugins/sine.so plugins/sine.o
/usr/lib/libstdc++.so.2.9 -shared
[richard_AT_muse src]$ analyseplugin -l ../plugins/sine.so
sine_faaa 1044 Sine Oscillator (Freq:audio, Amp:audio)
sine_faac 1045 Sine Oscillator (Freq:audio, Amp:control)
sine_fcaa 1046 Sine Oscillator (Freq:control, Amp:audio)
sine_fcac 1047 Sine Oscillator (Freq:control, Amp:control)
[richard_AT_muse src]$ ld -o ../plugins/sine.so plugins/sine.o -shared
[richard_AT_muse src]$ analyseplugin -l ../plugins/sine.so
Failed to load plugin "../plugins/sine.so": ../plugins/sine.so: undefined
symbol: __builtin_vec_new

(2) Building CMT first with C++ introduced at ld stage, then without:

[richard_AT_muse src]$ ld -shared -o ../plugins/cmt.so am.o ambisonic.o amp.o
cmt.o descriptor.o delay.o dynamic.o filter.o grain.o init.o mixer.o
noise.o null.o peak.o sine.o wshape_sine.o /usr/lib/libstdc++.so.2.9
[richard_AT_muse src]$ analyseplugin -l ../plugins/cmt.so
bf2cube 1092 Ambisonic Decoder (B-Format to Cube)
bf2quad 1091 Ambisonic Decoder (B-Format to Quad)
[...snip...]
sine_fcac 1066 Sine Oscillator (Freq:control, Amp:control)
wshape_sine 1097 Wave Shaper (Sine-Based)
[richard_AT_muse src]$ ld -shared -o ../plugins/cmt.so am.o ambisonic.o amp.o
cmt.o descriptor.o delay.o dynamic.o filter.o grain.o init.o mixer.o
noise.o null.o peak.o sine.o wshape_sine.o
[richard_AT_muse src]$ analyseplugin -l ../plugins/cmt.so
Failed to load plugin "../plugins/cmt.so": ../plugins/cmt.so: undefined
symbol: __rtti_user

So it sounds as if using C++ language features like new is enough to tip
things over the edge. Not good... (Surprised to see mention of RTTI - I've
never managed to get that to work with GNU C++!)

So all seems well - except for the fact that I find myself using ld with a
parameter "/usr/lib/libstdc++.so.2.9". This is very specific and scares me
quite a bit - does this mean that the plugin will only work with this
precise file installed? How about 2.10? (etc.) BTW, is anyone able to try
the CMT/Freeverb binaries against other C++ libraries easily?

Cheers,

-- Richard


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

This archive was generated by hypermail 2b28 : Fri May 19 2000 - 03:36:15 EEST