[cfe-dev] How to package library TSes

David Chisnall David.Chisnall at cl.cam.ac.uk
Tue Jul 28 00:39:21 PDT 2015


> On 28 Jul 2015, at 00:51, Ted Kremenek <kremenek at apple.com> wrote:
> 
> On OS X, we can do something similar to how we are handling the Swift runtime:
> 
> - Build the TSes in a separate dylib, and distribute that dylib (with its headers) with the compiler.
> 
> - When building an app that uses a TS, embed the dylib for the TS inside the app bundle itself.
> 
> - The embedded dylib would need to be ABI compatible with the core libc++ dylib on the host system, but that’s as far as it would need to go.  As the TSes evolve, the dylib would change and the app would need to get rebuilt anyway when it picks up a new compiler.

I’m assuming that this means that you don’t support using the TSs inside third party binary-only frameworks?  Or does the two-level linking namespace thing manage this for things that don’t expose TS types in headers?

> The major downside of this approach is that it creates an expectation of backwards deployment to earlier OSes, even if the TS makes it into the core libc++ dylib on the host system at a later stage.

Wouldn’t weak linking address or filter libraries address this?

David






More information about the cfe-dev mailing list