Switching a macOS build from C++17 to C++20 results in broken binaries on 10.11-10.14. These are versions of macOS JUCE 8 still officially supports (see README.md).
The problem is a missing function in libc++ on these old versions of macOS:
__cxa_deleted_virtual()
When loading an app/plugin that is linked to the newer libc++ and includes calls to that, a hard crash happens. This is unrelated to the min SDK version - it’s a problem with c++20 and libc++. It seems there is one spot in JUCE that leads to the emission of this call. In juce_AudioPluginInstance.h Line 80:
/** Obsolete: Prefer to use getVSTClient(), getVST3Client(),
getAudioUnitClient(), and/or getARAClient().
*/
virtual void getExtensions (class ExtensionsVisitor&) const = delete;
I think this line appeared as part of the headless plugin changes a few months ago.
Could this be changed to restore compatibility with 10.13/10.14?
Or bump the min supported macOS target to 10.15. It appears the compatibility with 10.13 is not tested at all and might break at any time again due to the somewhat limited c++20 support of those OS versions.
