Может ли ccache обрабатывать символические ссылки на тот же исходный файл, что и хиты? - PullRequest
0 голосов

По умолчанию ccache не разрешает символические ссылки при проверке совпадений:

printf '
#include <stdio.h>

int main(void) {
    puts("hello");
}
' > main.c
mkdir -p d
cd d
ln -s ../main.c main.c
cd ..
ccache -z
ccache gcc -c main.c
ccache -s | grep -E 'cache (hit|miss)'
ccache gcc -c d/main.c
ccache -s | grep -E 'cache (hit|miss)'

Вывод:

cache hit (direct)                     0
cache hit (preprocessed)               0
cache miss                             1
cache hit rate                      0.00 %

cache hit (direct)                     0
cache hit (preprocessed)               0
cache miss                             2
cache hit rate                      0.00 %

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

Запрашиваемая, потому что я использую scons, и мне не удалось заставить scons легко прекратить символьные ссылки на исходные файлы в каталог сборки: Как установить отключение duplicate = 0 для всех сборок SCons варианты без повторения опции несколько раз?

Протестировано с ccache 3.4.1.

...