(Hi, I’m Richie and I’m the co-author of VCV-Host.)
The VCV-Host plugin loads VST plugins into Rack. We have a problem with a couple of Mac VSTs, and I’m hoping there are MacOS developers here who might be able to shed some light.
The problems are related to the version of the MacOS toolset that Rack is built with.
Sonic Charge VSTs crash Rack (#1508), and Pro 2 Editor comes up with a blank editor window (#1460) but only if Rack is built with Xcode 10.
If Rack is built with Xcode 9, it all works - no crashes, editor window all present and correct.
This is true for both Rack v0.6 and v1 - it’s not the version of Rack or Host that matters, it’s the version of the toolset that they were built with.
When these crashes happen, the stack trace just shows Rack calling into GLFW’s message loop, then into the OS, then into the VST’s message handling code, then the crash. Neither Rack not Host are really involved in the crashing code. (#1508 has a stack trace attached, for what it’s worth.)
Obviously it’s not reasonable to demand that Rack is built with an old toolset for the sake of a rather obscure problem, so I need to figure out what has changed between Xcode 9 and 10, and work around that change.
I’m not primarily a MacOS developer (Windows and Linux are my main platforms) so I need help… where do I go from here? What diagnostic tools exist to help me analyse the differences between the working and failing executables or processes? Does anyone know of changes in Xcode 10 that could explain this? (OpenGL is an obvious suspect.)
one thing that could be the problem is the defaults for the Deployment Target - which is what determines the version of OSX (or MacOS) that the application is targeted toward. As the OS has changed, obviously toolkits have evolved, but Xcode allows for you to target specific toolkits and OS versions.
likely, the default changed between Xcode 9 and 10 (I don’t have Xcode 9 installed any longer, so cannot look at the default target). I noticed that #1508 is reporting OSX 10.4.6: 10.4 was released in 2005, and 10.4.6 isn’t even the latest (final) release of 10.4, which is 10.4.11 released in 2007.
I will note that for Xcode 10, you cannot target an OS older than 10.6 in the deployment target, so you may be stuck building with Xcode 9 in order to support a 14 year old operating system.
Hope that helps some at least.
Yeah, and Rack is built to support 10.7 and upwards.
Thanks - I’ll see whether adjusting the target version makes a difference.
(The “10.4.6” in the customer’s original bug report is a typo. It should be “10.14.6” - the log file tells the real story.)
The Rack makefiles already specify
-mmacosx-version-min=10.7, so I don’t think that can be the thing that’s making the difference.
your post was a little unclear - are you using Xcode itself for building your project, or just the command-line tools? if it’s just the command-line tools, you can use brew to install gcc/g++ or any other version of clang.
if you’re using Xcode itself, you’ll likely be using a different build system.
I’m using the standard command-line build system, according to the VCV “Building” documentation. As I understand it, that uses the gcc (really clang) that ships with Xcode.
Note that the problems I’m talking about affect stock Rack v1 as well as anything I’m building myself.
Antonio Tuzzi might be a good guy to ask.
sorry can’t help I’m stucked to XCode 9 for real life job reasons !