This is an archive of the discontinued LLVM Phabricator instance.

If libc++abi library path is given, use it to reexport
AbandonedPublic

Authored by isuruf on Oct 27 2018, 11:37 PM.

Details

Summary

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.

Diff Detail

Repository
rCXX libc++

Event Timeline

isuruf created this revision.Oct 27 2018, 11:37 PM

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.

isuruf added a comment.Nov 2 2018, 1:52 PM

Can you explain the problem that this change is solving?

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 LGTM. But adding @ldionne as this is an Apple specific change.

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.

isuruf abandoned this revision.Nov 21 2018, 9:42 AM

Thanks