


8 ноября вышел Ccache 4.14.3. Обновление исправляет два случая, когда кеш мог вернуть результат предыдущей компиляции для изменившихся входных данных. На Mentoring.digital разбираем, какие сборки затронуты и как проверить свой проект.
Ccache хранит результаты компиляции C и C++ и подставляет их при совпадении входных данных. Ассемблерная директива .incbin добавляет в объектный файл содержимое двоичного файла. В этой версии исправлено распознавание директивы, когда её операнд задан макросом. Это устраняет ложные попадания в кеш для такого сценария.
Второе исправление касается GCC и предкомпилированных заголовков, или PCH. Если в режиме depend Ccache не находит такой заголовок, он передаёт компиляцию GCC напрямую. Этот режим опирается на список зависимостей компилятора. При недостающем входе безопаснее получить результат новой компиляции.
ccache --version в том же окружении, где выполняется сборка.CCACHE_DISABLE=1 и с включённым Ccache в изолированном кеше. Сравните результат тестов..incbin, измените один подключаемый двоичный файл. Проверьте, что итоговый объект содержит новое содержимое.Для сборок с MSVC есть отдельное исправление. Ccache корректно экранирует обратные косые черты во временных файлах параметров, которые нужны для длинных командных строк. Конфигурацию проекта и выбор проверки можно разобрать с наставником по C++.