What are symbols with (.cold.n) in object files built for iOS?

Viewed 310

I am working on a multiplatform library that is compiled as static library for iOS. After a seemingly unrelated change the binary for iOS became significantly larger. When I looked at contents of the library to see what had changed, I saw a large number symbols with demangled names like this:

unsigned short boost::basic_format<char, std::__1::char_traits<char>, std::__1::allocator<char> >::make_or_reuse_data(unsigned long) (.cold.1)

I understand that the duplication is because the Boost formatter is included in many object files, but what is interesting is the (.cold.1) part. This particular function does not have any other versions, but there are some that come both without the part and .cold. versions with numbers up to 8.

What does the .cold. and number mean, and does the increased library size transfer to final app binary?

1 Answers
Related