Strip symbols not working

With current tip from master, Projucer set to project Type “Audio Plug-in”, debugging disabled, optimisation set to -O3 and having “Strip local symbols” turned on, I can still see many symbols of my own code when I do “nm Pluginname/Contents/Macos/Pluginname”.

Is this an error with Projucer, or am I missing something?

A lot has happened on the develop branch recently - try that!

I’ve just re-saved the project with the latest Projucer from the develop branch, but the generated XCode project is identically (except for the VST SDK path which disappeared from the HEADER_SEARCH_PATHS).

So, what could it be?

Are the remaining symbols the symbols of your code or just symbols of 3rd party libraries, e.g. Juce, Intel IPP, … ?

These are of my own code… (I am super glad that I was checking this before releasing an update.)

I’ve also never had much luck with the Xcode strip symbols function, it never seems to do a very good job. Usually in installers that I make, I manually run the strip command with the right arguments via a build script.

I did this before, too, but dropped it when the option was added to Projucer.

Why are you offering this option in Projucer then, if you know that it is unreliable?

1 Like

Well, some people use it, apparently, and requested that we support it.

Then I’d recommend that you put some big red text next to this option… currently the option gives us wrong faith in that symbols are stripped.

Releasing a plugin without stripped symbols would be such a bad option. I’d say send out a newsletter to everyone to ask them to make sure that their software is released with stripped symbols, and that they did not accidentally use that option.

…so I’m told that apparently it does work fine as long as you also enable “deployment post-processing”, which you can do with a flag.

Ouch, my fault it seems…

So, DEPLOYMENT_POSTPROCESSING is already set to YES by Projucer for Release builds, and all is fine.

It seems I must have done a “Build for Running” or so, instead of “Build for Profiling”, thus actually not doing a Release build. I am super-sorry for the wrong noise.