<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#333333" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 6/1/18 0:36 , Joshua Root wrote:<br>
    </div>
    <blockquote
      cite="mid:7ab6a22d-833a-067a-da00-d39d8bea381d@macports.org"
      type="cite">
      <pre wrap="">On 2018-6-1 07:24 , iEFdev wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">
I made a quick test on flac, adding:

# flac is using libstdc++ (this installation is configured to use libc++)
configure.cxx_stdlib libstdc++

…and the rev-upgrade let it pass.

</pre>
        <blockquote type="cite">
          <pre wrap="">Please open tickets or better yet PRs for affected ports.

- Josh
</pre>
        </blockquote>
        <pre wrap="">
Since I'm on an older system, with libcxx set in my config files -
wouldn't a ticket be a better option in case this is a no-error? Perhaps
it should be wrapped around a check for what macos version, etc?

When searching I saw this one (non-related):
<a class="moz-txt-link-freetext" href="https://lists.macports.org/pipermail/macports-dev/2015-April/030230.html">https://lists.macports.org/pipermail/macports-dev/2015-April/030230.html</a>

So perhaps something like:

if {[string equal ${configure.cxx_stdlib} "libc++"]} {
    configure.cxx_stdlib libstdc++
}

Would that be a better approach?
</pre>
      </blockquote>
      <pre wrap="">
Unfortunately using a different stdlib than the system-wide choice is
not an option for flac, as it provides libFLAC++ which is used by other
things. All C++ programs need to be using the same stdlib as all the C++
libraries they use, so effectively all C++ libraries have to use the
system-wide stdlib (as set in macports.conf in your case, but it's
equally true if the stdlib was auto-selected based on the platform).

Programs that are written in C++ but don't use or export any C++
libraries can get away with using a different stdlib.

If you don't happen to have anything installed that uses libFLAC++, you
of course won't see the problems resulting from a stdlib mismatch there.

- Josh

</pre>
    </blockquote>
    Aah, ok… So, for flac it need its own.<br>
    <br>
    I made a test using: “configure.cxx_stdlib libFLAC++” instead, and
    that was working as well. <br>
    <br>
    But, since you wrote:<br>
    <blockquote type="cite">
      <pre wrap="">These need to be fixed by either making them link with the selected stdlib (preferred), or changing configure.cxx_stdlib to match what they are actually using.</pre>
    </blockquote>
    And the debug said: “flac is using libstdc++ (this installation is
    configured to use libc++)” - I thought it suppose to be the first
    one.<br>
    <br>
    When unistalling flac &/or doing a rev-upgrade, it says it'll
    breake:<br>
    <pre><pre>--->  Unable to uninstall flac @1.3.2_0, the following ports depend on it:
--->         libsndfile @1.0.28_0
--->         sox @14.4.2_1</pre></pre>
    So, I guess that's 2 ones that is using it. rev-upgrade says there
    are no broken ports.<br>
    <br>
    - - -<br>
    <br>
    The ports: wxWidgets, pgAdmin3, gptfdisk, flac<br>
    <br>
    Should I create some tickets? or PRs/patches adding
    “configure.cxx_stdlib libstdc++” (except flac) for those?<br>
    // ...or should it be “configure.cxx_stdlib
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    ${configure.cxx_stdlib}” to get what ever is set.<br>
    <br>
    · Eric<br>
  </body>
</html>