Linux VST build not stripping

Hello,

I just noticed that my Linux build of a VST appears to be exporting symbols even though it should be stripped. If I call make strip I get the following output:

strip: Warning: 'build/' is a directory
Makefile:334: recipe for target 'strip' failed
make: [strip] Error 1 (ignored)

Calling nm -gD build/Plugin.so dumps every class and method. Manually calling strip -x build/Plugin.so seems to knock about 1MB off the file, but doesn’t seem to strip any of the symbols.

The Makefile appears to use fvisibility=hidden so it should be stripped by default? The standalone version seems to successfully strip any unwanted symbols.

Is there anything I can do to strip these symbols?

Cheers.

EDIT: I also have an issue with fonts that I presume is due to these symbols. I have multiple plugins that all inherit the same custom editor base class, which creates a font for uniform design across all plugins. If I load 2 different plugins in the DAW, the second can’t load the font and falls back to the OS default. 2 of the same plugin don’t have this problem, nor 2 different standalone plugins.

Just a friendly bump.

I’ve tried a blank project as advised here, but the default Linux VST isn’t stripped (although the standalone is), and manually stripping won’t remove most of the symbols.

Thanks.

Does that help?

Thanks for the reply. Unfortunately I’m not using JUCE6 or the new CMake format - just the vanilla Linux Makefile for JUCE 5.4.7.

I’ve tried adding -s to the linker flags in the makefile, but it seems to have no effect. Is the only way an upgrade to JUCE6 and migrating to CMake?

Ahh our pre-6 linux ones we only built standalone (since juce5 didn’t make linux vst3 and we didn’t build a vst2 ourselves) so not sure I can help there too much sorry!