[libc++] Do not share an object library to create the static/shared libraries
authorLouis Dionne <ldionne@apple.com>
Thu, 14 Mar 2019 14:19:08 +0000 (14:19 +0000)
committerLouis Dionne <ldionne@apple.com>
Thu, 14 Mar 2019 14:19:08 +0000 (14:19 +0000)
commit989eca62c6b23f15fcc9da5de5f17b628fbde1db
tree774e9fda35e2116c3a15cb5fc74c0acf9e2f3901
parent72bde9aa7ee384240d9052509d29dfd49f3462a9
[libc++] Do not share an object library to create the static/shared libraries

Summary:
The problem with using an object library for doing this is that it prevents
the shared library and the static library from being built with the right
default flags. For example, CMake will build shared libraries with -fPIC
by default, but not static libraries. Using an object library to create
the shared library will prevent the right default flags for shared
libraries from being used.

As a side effect, this patch also localizes the logic related to building
a hermetic static library to the static library case, making clear that
this has no effect on the shared library.

Reviewers: phosek, EricWF

Subscribers: mgorny, christof, jkorous, dexonsmith, jdoerfert, libcxx-commits

Differential Revision: https://reviews.llvm.org/D59248

llvm-svn: 356150
libcxx/lib/CMakeLists.txt