diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-05-03 21:30:18 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-05-03 21:30:18 +0000 |
commit | 27cb2f12252776825f656997ec4ee8f552259f08 (patch) | |
tree | cb9840200089e78088ab71e172e96736d96be642 /llvm/lib/Transforms | |
parent | c91e0b2fdefa47f0ffa539aa6352c2058d3ab133 (diff) | |
download | bcm5719-llvm-27cb2f12252776825f656997ec4ee8f552259f08.tar.gz bcm5719-llvm-27cb2f12252776825f656997ec4ee8f552259f08.zip |
Create new library 'libc++experimental.a' for packaging TS symbols.
Summary:
Out-of-line symbols for <experimental/...> headers are not ABI or API stable and cannot live in the 'libc++.dylib'. Currently they have nowhere to live. I would like to add a new library target `libc++experimental.a` to fix this.
Previously I had suggested different libraries for different TS's (`libc++filesystem.a`, 'libc++LFTS.a`, ect). I no longer think this is the right approach.
Instead `c++experimental` will hold *all* TS implementations as a single monolithic library. I see two main benefits to this:
1. Users only have to know about and manually link one library.
2. It makes it easy to implement TS's with one or two out-of-line symbols. (Ex. PMRs)
`c++experimental` provides NO ABI compatibility. Symbols can freely be added/removed/changed without concern for ABI stability.
I will add documentation for this after landing this patch (but before adding anything to it).
`c++experimental` only builds as a static library. By default CMake will build/test this library but will *NOT* install it.
This patch adds the CMake and LIT logic needed to build/test the new library. Once this lands I plan on using it to implement parts of `<experimental/memory_resource>`.
Reviewers: mclow.lists
Subscribers: cfe-commits, theraven, krememek, dexonsmith, bcraig, beanz, danalbert
Differential Revision: http://reviews.llvm.org/D19856
llvm-svn: 268443
Diffstat (limited to 'llvm/lib/Transforms')
0 files changed, 0 insertions, 0 deletions