|
Boost : |
Subject: [boost] iPhone mangled symbol size explosion in release
From: Michael Marcin (mike.marcin_at_[hidden])
Date: 2009-12-15 19:01:55
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
__ZNK5boost6spirit8sequenceINS1_INS1_
INS0_6strlitIPKwEENS0_4ruleINS0_7scan
nerIN9__gnu_cxx17__normal_iteratorIPc
SsEENS0_16scanner_policiesINS0_16iter
ation_policyENS0_12match_policyENS0_1
3action_policyEEEEENS0_5nil_tESI_EEEE
NS0_5chlitIwEEEENS0_6actionISJ_NS_7ar
chive3xml11assign_implISsEEEEE5parseI
SH_EENS0_13parser_resultISU_T_E4typeERKSX_
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?
Thanks,
Michael Marcin
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk