[llvm-dev] Shipping custom libc++ on MacOS

David Chisnall via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 1 02:13:41 PST 2021


Hi,

I can't speak for macOS specifically, but in general you can have 
problems on *NIX platforms if you have two libraries that implement the 
same symbols loaded.  Everything in libc++ is in the namespace defined 
by _LIBCPP_ABI_NAMESPACE and then aliased into std.  Can you not define 
this to something custom?  That should give you different symbol names 
and so if you depend on another library that links a different version 
of libc++ (statically or dynamically) you won't conflict.

David

On 01/02/2021 07:37, Tobias Hieta via llvm-dev wrote:
> Hello,
> 
> We are working on an application where we want to have full support
> for C++17 but still ship on older versions of macOS (10.9/10.10 in
> this case). Our plan was to build our own libc++ from llvm and ship it
> with the application and then pass "-D_LIBCPP_DISABLE_AVAILABILITY"
> 
> This seemed to work fine in internal testing - but then we ran into a
> similar issue as the one described here:
> https://reviews.llvm.org/D74489#2497044
> 
> Now I can patch my copy of libc++ with the upstream fix for this - but
> the comment below made me think otherwise:
> https://reviews.llvm.org/D74489#2505156
> 
> We have run into problem where if you ship your own libc++ the system
> frameworks loads the system libc++ and some strange errors happen - we
> thought we could work around these issues - but maybe this is just us
> being naive.
> 
> So I guess my question is - is it possible to ship a custom libc++ in
> a .app archive for older versions of macOS in order to use C++17? Or
> is my only hope to raise the minimum version of our app and always
> link to the system libc++?
> 
> Thanks,
> Tobias
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 


More information about the llvm-dev mailing list