<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi Miller,</p>
    <p>thanks a lot for reporting! Will push a fix on develop.</p>
    <p>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">... and, it wasn't obvious to me that I needed to have static libc++</pre>
      </blockquote>
    </p>
    <p>In the build system there's a CMake option "STATIC_LIBS" which
      says: "link with static libraries (libstdc++, libgcc and phread)"</p>
    <p>You can just set it to OFF. There's a note in the README:<br>
    </p>
    <p>"When<span style=" color:#c0c0c0;"> </span>compiling<span
        style=" color:#c0c0c0;"> </span>with<span style="
        color:#c0c0c0;"> </span>GCC<span style=" color:#c0c0c0;"> </span>on<span
        style=" color:#c0c0c0;"> </span>Linux<span style="
        color:#c0c0c0;"> </span>we<span style=" color:#c0c0c0;"> </span>offer<span
        style=" color:#c0c0c0;"> </span>the<span style="
        color:#c0c0c0;"> </span>option<span style=" color:#c0c0c0;"> </span>`STATIC_LIBS`<span
        style=" color:#c0c0c0;"> </span>to<span style=" color:#c0c0c0;">
      </span>link<span style=" color:#c0c0c0;"> </span>statically<span
        style=" color:#c0c0c0;"> </span>with<span style="
        color:#c0c0c0;"> </span>libstd++<span style=" color:#c0c0c0;">
      </span>and<span style=" color:#c0c0c0;"> </span>libgcc;<span
        style=" color:#c0c0c0;"> </span>the<span style="
        color:#c0c0c0;"> </span>default<span style=" color:#c0c0c0;"> </span>is<span
        style=" color:#c0c0c0;"> </span>'OFF'."</p>
    <p>Turns out that the last sentence is wrong :-) The default is
      `ON`. Will update the README.</p>
    <pre class="moz-quote-pre" wrap=""><blockquote type="cite"><pre class="moz-quote-pre" wrap="">I'm not sure why it's necessary to use the static version at all</pre>
</blockquote></pre>
    <p>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.</p>
    <p>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...
      <a class="moz-txt-link-freetext" href="https://git.iem.at/pd/vstplugin/-/issues/26#note_4132">https://git.iem.at/pd/vstplugin/-/issues/26#note_4132</a> Luckily,
      this doesn't affect mingw64 builds.</p>
    <p>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Meanwhile, bravo - this is a really good thing.</pre>
      </blockquote>
      Glad you're enjoying it! *blush*</p>
    <p>Christof<br>
    </p>
    <div class="moz-cite-prefix">On 13.04.2020 03:21, Miller Puckette
      via Pd-list wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:20200413012132.GK14613@ucsd.edu">
      <pre class="moz-quote-pre" wrap="">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:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">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:
<a class="moz-txt-link-freetext" href="https://git.iem.at/pd/vstplugin/-/releases">https://git.iem.at/pd/vstplugin/-/releases</a>

If possible, please report any issues at
<a class="moz-txt-link-freetext" href="https://git.iem.at/pd/vstplugin/issues">https://git.iem.at/pd/vstplugin/issues</a>

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)

</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">_______________________________________________
Pd-announce mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Pd-announce@lists.iem.at">Pd-announce@lists.iem.at</a>
<a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-announce">https://lists.puredata.info/listinfo/pd-announce</a>
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">_______________________________________________
<a class="moz-txt-link-abbreviated" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-list">https://lists.puredata.info/listinfo/pd-list</a>
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">



_______________________________________________
<a class="moz-txt-link-abbreviated" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-list">https://lists.puredata.info/listinfo/pd-list</a>
</pre>
    </blockquote>
  </body>
</html>