[libc++abi] Specify unwind lib before other system libraries when linking
authorLouis Dionne <ldionne@apple.com>
Fri, 1 Mar 2019 22:55:15 +0000 (22:55 +0000)
committerLouis Dionne <ldionne@apple.com>
Fri, 1 Mar 2019 22:55:15 +0000 (22:55 +0000)
commit4b1b4bf3b3ddc4a3d64c12dd42489f50e56d0774
treefec933346fc8372a859e9d4f17c9bcb29c30fdf2
parent0e6b42f5ebd4206f4d491915fe0f10aea13b983b
[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
libcxxabi/src/CMakeLists.txt