How to correctly strip symbols on Linux VST?

I’m working to release Linux versions of my plugins (already have Windows and Mac out there). All the code works perfectly (big ups Juce team for that cross-platform magic!) but I can’t figure out how to strip the symbols from the VST. Standalone works with the usual ‘strip -x’ afterwards.

I’m guessing it’s because I’m using the ‘Audio Project’ template in the Projucer and it puts everything in the shared static library first. To strip on Mac with this same setup I had to change a few XCode settings (listed below) but I’m not sure how to do this with the Linux make file.

I should also add I’m on Juce 5.4.4 but happy to update if more work has been done on the project settings.

The XCode settings I use for stripped audio plugin symbols:

VST project
Deployment -> deployment postprocessing = yes
Linking -> perform single-object prelink = yes

Shared code
Deployment -> strip style = non-global symbols

Gonna try 1 bump, I was hoping to get an official Juce team answer…

If it can’t be done with the Audio Plugin template then that probably should be mentioned in the Projucer somewhere.

What symbols are you trying to strip that aren’t being stripped by either the Xcode project on macOS or with the strip -x command on Linux? If I nm -gU the release build libAudioPluginDemo.a on macOS then I only see the exported JUCE symbols, not local ones.

Ok I’ve looked into it more and it all seems a bit strange.

In my project after doing an Xcode Release build (now on latest Juce, no changes from generated Projucer project other than adding all my files) I can still see basically everything. References to my cpp files, my method names, variable etc. This (plus wanting DSYM files) is why I had to change all my settings before.

But… If I start a new Plugin template project in the Producer and add a test class then none of the test stuff shows up as symbols. (just like you describe)

I’m still looking into what changes might be causing this. Perhaps if I get the macOS version right the Linux one will also be ok.

1 Like

Hi @TripDowntown

Did you ever find a solution for this? My OSX & Win builds strip successfully, but my Linux VST refuses to do so.

@mibix I’m still having trouble here although I had to park it and move onto other things for a while. A bare-bones juce project seemed to work but my big app (based on the same bare-bones juce project) still doesn’t strip things properly. I’m working on this again for a few days and will post any progress.

1 Like