Closed pauldavisthefirst closed 1 year ago
By comparison
objdump -T ~/.lv2/Pianoteq\ 7/Pianoteq_7.so | grep ' g '
outputs just 5 lines:
0000000000218230 g DF .text 000000000000001a Base lv2ui_descriptor
00000000002c79c0 g DF .text 0000000000000012 Base main
00000000002c6980 g DF .text 000000000000103d Base VSTPluginMain
0000000000218210 g DF .text 000000000000001a Base lv2_descriptor
000000000021a780 g DF .text 00000000000000a4 Base lv2_generate_ttl
Thanks
Hello, Somewhat off-topic, but I've unsubscribed from this channel numerous times, but I'm continually getting progress updates on this topic. Where could the problem lie? Please spare some time to investigate. Cheers.
Hello, Somewhat off-topic, but I've unsubscribed from this channel numerous times, but I'm continually getting progress updates on this topic. Where could the problem lie? Please spare some time to investigate. Cheers.
Thank You... Cheers.
The build for this plugin is leaving too many symbols exposed.
objdump -T /home/paul/.vst/mx_tune.so | grep ' g ' | grep aubio | wc -l
outputs 113 here. All these aubio API symbols being globally visible mean that when the plugin is loaded into a host that also uses aubio, the plugin will use the host's version, which may be the wrong version of aubio.
The plugin (and possibly the aubio build too) need to built with compiler/linker flags similar to the following:
-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed -Wl,--strip-all
so that these symbols (a) remain private (b) the versions used by the plugin come from the aubio version it was linked with.
This is why the plugin crashes in Ardour, which uses aubio internally. Some distro builds of Ardour, and/or a user's own local build, will work, because everything ends up with the same version of aubio. However, it appears that the release version of Ardour (for now) uses a different version of aubio and this causes crashes/issues with this plugin.