diff options
author | Louis Dionne <ldionne@apple.com> | 2019-03-01 22:55:15 +0000 |
---|---|---|
committer | Louis Dionne <ldionne@apple.com> | 2019-03-01 22:55:15 +0000 |
commit | 4b1b4bf3b3ddc4a3d64c12dd42489f50e56d0774 (patch) | |
tree | fec933346fc8372a859e9d4f17c9bcb29c30fdf2 | |
parent | 0e6b42f5ebd4206f4d491915fe0f10aea13b983b (diff) | |
download | bcm5719-llvm-4b1b4bf3b3ddc4a3d64c12dd42489f50e56d0774.tar.gz bcm5719-llvm-4b1b4bf3b3ddc4a3d64c12dd42489f50e56d0774.zip |
[libc++abi] Specify unwind lib before other system libraries when linking
This matters on OSX because static linking orders is also the order dyld
uses to search for libs (the default - Two-level namespace). If system
libs (including unwind lib) are specified before local unwind lib, local
unwind lib would never be picked up by dyld.
Before:
$ otool -L lib/libc++abi.dylib
@rpath/libc++abi.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
@rpath/libunwind.1.dylib (compatibility version 1.0.0, current version 1.0.0)
After:
$ otool -L lib/libc++abi.dylib
@rpath/libc++abi.1.dylib (compatibility version 1.0.0, current version 1.0.0)
@rpath/libunwind.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
Thanks to Yuanfang Chen for the patch.
Differential Revision: https://reviews.llvm.org/D57496
llvm-svn: 355241
-rw-r--r-- | libcxxabi/src/CMakeLists.txt | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt index 66151b1250e..b05178af4c2 100644 --- a/libcxxabi/src/CMakeLists.txt +++ b/libcxxabi/src/CMakeLists.txt @@ -189,7 +189,7 @@ if (LIBCXXABI_ENABLE_SHARED) if(COMMAND llvm_setup_rpath) llvm_setup_rpath(cxxabi_shared) endif() - target_link_libraries(cxxabi_shared PRIVATE ${LIBCXXABI_LIBRARIES} ${LIBCXXABI_SHARED_LIBRARIES}) + target_link_libraries(cxxabi_shared PRIVATE ${LIBCXXABI_SHARED_LIBRARIES} ${LIBCXXABI_LIBRARIES}) set_target_properties(cxxabi_shared PROPERTIES CXX_EXTENSIONS @@ -226,7 +226,7 @@ if (LIBCXXABI_ENABLE_STATIC) endif() endif() add_library(cxxabi_static STATIC ${cxxabi_static_sources}) - target_link_libraries(cxxabi_static PRIVATE ${LIBCXXABI_LIBRARIES} ${LIBCXXABI_STATIC_LIBRARIES}) + target_link_libraries(cxxabi_static PRIVATE ${LIBCXXABI_STATIC_LIBRARIES} ${LIBCXXABI_LIBRARIES}) set_target_properties(cxxabi_static PROPERTIES CXX_EXTENSIONS |