multiple ports with stdlibc++ mismatches (all on 10.13)...

Joshua Root jmr at macports.org
Fri Jun 1 00:53:39 UTC 2018


On 2018-6-1 09:49 , iEFdev wrote:
> 
> Aah, ok… So, for flac it need its own.
> 
> I made a test using: “configure.cxx_stdlib libFLAC++” instead, and that
> was working as well.

Sorry if I wasn't clear: libFLAC++ is a library provided by the flac
port. It is linked to the C++ stdlib. Programs that use libFLAC++ need
to use the same stdlib that libFLAC++ does. The way to ensure that is to
make sure libFLAC++ is built against the stdlib that has been selected
for the MacPorts installation as a whole (whether that's libstdc++ or
libc++).

The bottom line is that changing configure.cxx_stdlib in the flac port
is not a solution. It needs to be fixed to build against the cxx_stdlib
that is selected.

> But, since you wrote:
>> 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.
> And the debug said: “flac is using libstdc++ (this installation is
> configured to use libc++)” - I thought it suppose to be the first one.

Yes, flac was using libstdc++ even though it had been told to use
libc++. That needs to be fixed.

> When unistalling flac &/or doing a rev-upgrade, it says it'll breake:
> 
> --->  Unable to uninstall flac @1.3.2_0, the following ports depend on it:
> --->  	libsndfile @1.0.28_0
> --->  	sox @14.4.2_1
> 
> So, I guess that's 2 ones that is using it. rev-upgrade says there are
> no broken ports.

I don't know whether those ports are using libFLAC++ or just libFLAC.

> The ports: wxWidgets, pgAdmin3, gptfdisk, flac
> 
> Should I create some tickets? or PRs/patches adding
> “configure.cxx_stdlib libstdc++” (except flac) for those?
> // ...or should it be “configure.cxx_stdlib ${configure.cxx_stdlib}” to
> get what ever is set.

For ports that don't provide or use any C++ libraries, you can get away
with changing configure.cxx_stdlib to match what they're already doing.
Those that do provide or use C++ libraries need to be fixed to use the
C++ stdlib that they are being told to use.

- Josh


More information about the macports-dev mailing list