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

MacPorts noreply at macports.org
Mon Mar 15 17:11:14 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 Wowfunhappy):

 I understand approximately 15% of what's going on here, so please excuse
 the possibly-stupid question: If we've swapped out the system's `libc++`
 for our special `macports-libc++.dylib`, for a particular piece of
 software, why is ODR a problem? Shouldn't that software only ever use
 `macports-libc++`, and never the system's `libc++`? Does it really matter
 that ''other'' software might be using the system's `libc++`?

 On a completely separate track, I wonder if there's some sort of macho-o
 linking trick (presumably one of http://blog.darlinghq.org/2018/07/mach-o
 -linking-and-loading-tricks.html) that would allow the system's `libc++`
 to fall back to `macports-libc++` ''if and only if'' it encountered an
 undefined symbol. I'm thinking primarily about how I was able to get Unity
 games working on Mavericks, by replacing and then re-exporting
 `libSystem.B.dylib` in order to add one missing function:
 https://apple.stackexchange.com/questions/414688/how-can-i-run-newer-
 unity-games-on-os-x-10-9-mavericks/414689.

 Again, my sincere apologies if this is all very dumb. Cheers!

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


More information about the macports-tickets mailing list