Параметр -march = native для gcc генерирует различный код в зависимости от архитектуры хоста. ccache не хранит архитектуру машины в своем хэше, что означает, что если вы измените архитектуру машины, например, чтобы переключиться на высокопроизводительный узел VPS, кешированные объектные файлы могут быть несовместимы.

Как я могу убедиться, что получаю правильные объектные файлы, при этом используя кеширование?

2
Brice M. Dempsey 8 Апр 2016 в 19:58

1 ответ

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

Также помните, что если вы используете -march=native, то любой, кто хочет запустить ваш двоичный файл, должен иметь такую же (или, возможно, более новую, но обратно совместимую) машинную архитектуру. Что может быть, а может и не быть проблемой.

0
Jesper Juhl 8 Апр 2016 в 17:16