[cfe-dev] Using libc++ in a published app

Richard Pennington rich at pennware.com
Sun May 11 13:25:05 PDT 2014


On 05/11/2014 03:16 PM, Sean Colombo wrote:
> Hi there,
> When releasing an OSX app using libc++, is there any standard way to 
> make sure the user has this dependency installed?
>
> It appears that users on OSX 10.6 and below do not have libc++ by 
> default (that's around 20% of OS X users at the moment).
>
> If I simply package libc++.1.dylib with my app, I assume it will 
> continue to fail because there seems to be a large number of cascading 
> dependencies.  Is there some script I could run at installation-time 
> to make sure libc++ and all of its dependencies get installed?
>
> Thanks for any pointers you could give me!
>  - Sean Colombo
>

For my project (http://ellcc.org), I'm creating Linux static binaries 
for everything to eliminate dependencies. On an x86_64 system the 
resulting static binaries are actually smaller than the normal 
clang/LLVM dynamically linked binaries:

<http://ellcc.org/blog/?page_id=289>[~] dev% size llvm-dir/bin/clang 
ellcc/bin/ecc
    text    data     bss     dec     hex filename
57361633        2674424   95400 60131457        3958881 llvm-dir/bin/clang
48301230          53168   95600 48449998        2e349ce ellcc/bin/ecc
[~] dev% file llvm-dir/bin/clang ellcc/bin/ecc
llvm-dir/bin/clang: ELF 64-bit LSB executable, x86-64, version 1 
(GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 
2.6.32, BuildID[sha1]=7824be96a50ef5c4aa3501c9f32e18399397e9c6, stripped
ellcc/bin/ecc:      ELF 64-bit LSB executable, x86-64, version 1 (SYSV), 
statically linked, 
BuildID[sha1]=c604e1efa1b99bf305bb76e7ac170c9d0019e96e, not stripped
[~] dev%

I use libc++, libc++abi, compiler-rt, and musl (all compiled statically 
of course) to build the executables.

-Rich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140511/dea0c0be/attachment.html>


More information about the cfe-dev mailing list