liuanlin-mx / MXTune

pitch correction plugin for VST
GNU General Public License v3.0
152 stars 8 forks source link

plugin has too many exposed symbols (ardour crash etc.) #6

Closed pauldavisthefirst closed 1 year ago

pauldavisthefirst commented 1 year ago

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.

pauldavisthefirst commented 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
pauldavisthefirst commented 1 year ago

See also https://github.com/Ardour/ardour/commit/102c48d7a1054f0743cd18f2ae09e4b2dab5c846

liuanlin-mx commented 1 year ago

Thanks

SunflowerGUY commented 1 year ago

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.

liuanlin-mx commented 1 year ago

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.

图片 图片

SunflowerGUY commented 1 year ago

Thank You... Cheers.