ccache basedir не работает должным образом

Я пытаюсь заставить ccache работать с одним и тем же исходным кодом, созданным из разных родственных каталогов. Я успешно установил CCACHE_BASEDIR в родительский каталог этих двух братьев и сестер. Если я выполняю сборку в bld1, а затем переключаюсь на bld2 и создаю эту копию (опять же, это те же источники), я не получаю попаданий в кеш.

Теперь я смотрю на вывод журнала настройки CCACHE_LOGFILE. К сожалению, журнал не сообщает мне, какие факторы / данные использовались для вычисления хэшей, которые он ищет, я просто вижу много сообщений «Нет такого файла манифеста» (похоже, для прямого поиска).

Есть ли другие варианты, которые я могу использовать для отладки проблемы с ccache, чтобы выяснить, почему он не распознает эти два исходных дерева как идентичные?

Чтобы быть ясным, если я повторю сборку в данном каталоге, я действительно получаю много попаданий в кеш - так что очевидно, что ccache работает с неизменным путем сборки, он просто не работает должным образом в каталогах.


person Mike Ellery    schedule 31.08.2017    source источник


Ответы (1)


Решение, скорее всего, установит hash_dir = false (CCACHE_NOHASHDIR=1 при использовании переменных среды) или настройку -fdebug-prefix-map=old=new для переноса отладочной информации на общий префикс (например, -fdebug-prefix-map=$PWD=.). Более подробную информацию можно найти в разделе «Компиляция в разных каталогах» руководства ccache .

person Joel Rosdahl    schedule 13.02.2018