[MacPorts] #62426: libc++: using a newer libc++ to build software on older macos systems
MacPorts
noreply at macports.org
Tue Mar 16 20:46:16 UTC 2021
#62426: libc++: using a newer libc++ to build software on older macos systems
-------------------------------------+----------------------
Reporter: kencu | Owner: kencu
Type: enhancement | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: libcxx macports-libcxx |
-------------------------------------+----------------------
Comment (by Wowfunhappy):
Replying to [comment:16 kencu]:
> I will start by saying I'm still learning too.
>
> The issue that can happen is that a certain structure is defined,
malloc'd, and initialized by software linked against
/usr/lib/libc++.dylib, let's say a file structure.
>
> But then over time as libc++ evolved, this structure has changed, and in
the new libc++.dylib in /opt/local/lib/libcxx/libc++.dylib, that structure
is now defined differently. And software linked against that new libc++
has a different idea what it looks like.
>
> Think maybe VHS vs. Beta.
>
> So if these two pieces of software try to interact, eg. an application
using a library, one built against /usr/lib/libc++.dylib and the other
built against /opt/local/lib/libcxx/libc++.dylib, then Unexpected Things
Can Happen.
>
> In real life, we knew about this but we never saw anything like this
happen in the pre-10.6 libstdc++.dylib world until one day libgcc evolved
to 7.5, and then it started happening quite frequently.
Thanks for this, I guess the problem is software is never really separate,
since the libraries are linked together.
Is this something two-level name-spacing can help with, or would that be
too large a change?
--
Ticket URL: <https://trac.macports.org/ticket/62426#comment:21>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list