Я работаю над многоплатформенной библиотекой, которая скомпилирована как stati c библиотека для iOS. После, казалось бы, несвязанного изменения двоичный код для iOS стал значительно больше. Когда я посмотрел на содержимое библиотеки, чтобы увидеть, что изменилось, я увидел большое количество символов с выделенными именами, такими как:
unsigned short boost::basic_format<char, std::__1::char_traits<char>, std::__1::allocator<char> >::make_or_reuse_data(unsigned long) (.cold.1)
Я понимаю, что дублирование происходит из-за того, что средство форматирования Boost включено во многие объекты файлы, но что интересно, так это (.cold.1) часть. Эта конкретная функция не имеет каких-либо других версий, но есть некоторые, которые поставляются как без части, так и .cold. версии с номерами до 8.
При чем тут .cold. и число означает, а увеличенный размер библиотеки переносится в конечный двоичный файл приложения?