When building libc++ on OSX against a newer libc++abi library that is not a system library (Not in /usr/lib and not in CMAKE_OSX_SYSROOT), libc++ links against both the newer libc++abi and /usr/lib/libc++abi.dylib one. With this change, libc++ is not linked against a system library.
Details
Diff Detail
- Repository
- rCXX libc++
Event Timeline
Can you explain the problem that this change is solving?
I'll admit I don't fully understand the logic governing whether we re-export the system libc++abi symbols or use the export list: this area of the build is pretty messy.
Before this change libc++.dylib was linking to system libc++abi.dylib even though I gave LIBCXX_CXX_ABI_LIBRARY_PATH path to a newly built libc++abi.dylib
I'll admit I don't fully understand the logic governing whether we re-export the system libc++abi symbols or use the export list: this area of the build is pretty messy.
Me neither. I just wanted libc++.dylib to link to the given libc++abi.dylib instead of the system one.
This should be superseded by https://reviews.llvm.org/D54595. I don't think we ever want to re-export the current system's libc++abi -- we should always use an explicit list of exported symbols.