[MacPorts] #62426: libc++: using a newer libc++ to build software on older macos systems

MacPorts noreply at macports.org
Mon Mar 15 20:18:05 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       |
--------------------------+----------------------

Comment (by 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.

-- 
Ticket URL: <https://trac.macports.org/ticket/62426#comment:16>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list