Hi Miller,
thanks a lot for reporting! Will push a fix on develop.
... and, it wasn't obvious to me that I needed to have static libc++
In the build system there's a CMake option "STATIC_LIBS" which says: "link with static libraries (libstdc++, libgcc and phread)"
You can just set it to OFF. There's a note in the README:
"When compiling with GCC on Linux we offer the option `STATIC_LIBS` to link statically with libstd++ and libgcc; the default is 'OFF'."
Turns out that the last sentence is wrong :-) The default is `ON`. Will update the README.
I'm not sure why it's necessary to use the static version at all
Statically linking makes sharing C++ externals easier. I've had people missing the correct stdlibc++ version on their Linux system, so the external would fail to load. So for uploading to Deken, statically linking is preferred. Package managers, on the other hand, frown upon static linking and prefer to link dynamically (which makes sense). So if vstplugin~ would be released as a Debian package, it should be linked dynamically. I just offer both options.
Then there's a very annoying bug in mingw32 where dynamic linking libgcc and libstdc++ breaks DWARF2 exception handling if the host application is statically linked and vice versa. Throwing an exception immediately terminates the program... https://git.iem.at/pd/vstplugin/-/issues/26#note_4132 Luckily, this doesn't affect mingw64 builds.
Glad you're enjoying it! *blush*Meanwhile, bravo - this is a really good thing.
Christof
Minor compiler fix if you're only using VST2: void PluginInfo::setUID(const char *uid){ #if USE_VST3 type_ = PluginType::VST3; char buf[33]; for (int i = 0; i < sizeof(TUID); ++i){ // we have to cast to uint8_t! sprintf(buf + 2 * i, "%02X", (uint8_t)uid[i]); } buf[32] = 0; uniqueID = buf; memcpy(id_.uid, uid, 16); #endif } ... and, it wasn't obvious to me that I needed to have static libc++ installed (I got the error "-lstdc++: not found" or some such but had to dig for a while to see that it was the _static_ version that was missing.) I'm not sure why it's necessary to use the static version at all, but it might help some future user if that was mentioned as a dependency somewhere. Meanwhile, bravo - this is a really good thing. cheers Miller On Tue, Apr 07, 2020 at 09:39:42AM +0200, Christof Ressi wrote:Hi, here's a small bugfix release for vstplugin~- an external to load VST 2 and VST 3 plugins in Pd on Windows, macOS and Linux. Binaries are available on Deken or can be downloaded here: https://git.iem.at/pd/vstplugin/-/releases If possible, please report any issues at https://git.iem.at/pd/vstplugin/issues Have fun and stay healthy! Christof --- Changelog - features * implement missing SMPTE support for VST2 and VST3 plugins * implement missing MIDI clock sample offset for VST3 plugins (already implemented for VST2 plugins) - bug fixes * fix tiny VST editor window with certain plugins (rare) * fix bug in VST3 host message binary attribute (used by certain plugins, like FabFilter, to transmit large visualization data)_______________________________________________ Pd-announce mailing list Pd-announce@lists.iem.at https://lists.puredata.info/listinfo/pd-announce_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list