|
Boost : |
Subject: Re: [boost] iPhone mangled symbol size explosion in release
From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2009-12-15 23:05:05
Michael Marcin wrote:
> We're currently working to ship an iPhone application that makes heavy
> use of Boost.
> The compiled executable is absurdly large, partly to third party
> libraries, partly to our own insufficent coding practices, but
> strikingly it seems that (from looking at the executable in a hex
> editor) around 4MB of the 9.5MB app size is mangled boost function
> names. We are statically linking against the libraries in Boost we are
> using. Here are some examples:
>
>
> __ZN5boost13serialization9singletonIN
> S_7archive6detail11oserializerINS2_12
> xml_oarchiveEN6newton18Vector3InitializerEEEE12get_instanceEv
[...]
>
> AFAIK All application functions should have been hard-linked since we're
> statically linking and thus not require any type of named reference.
>
> Am I perhaps missing or misusing a Boost configuration setting or
> compiler flag?
There was a recent change to Boost.Build that changed the default
behavior of symbol stripping for the built-in release variant (in
trunk). It now no longer strips symbols by default. And one needs to add
a "<strip>on", and conversely <strip>off, to have the previous default
functionality. And it also happens that I just checked in changes to fix
the darwin/xcode toolset that accounts for the new "strip" feature,
specifically because I also have to strip for the sake of creating the
smallest binaries possible on the iPhone.
Note, please direct further discussion of this to the Boost.Build list
(CC'd here for tracking).
HTH.
-- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk