Невоспроизводимые ошибки при компиляции swfmill
На 1-ядерном компьютере проблем со сборкой swfmill не было. На новом 6-ядерном — не собиралось. Причём каждый раз компиляция обрывалась с другой ошибкой. Все ошибки — на файлах C++, генерируемых xsltproc из XML. Возникло ощущение, что файл попадает компилятору на обработку до того, как закончит генерироваться.
Попробовал добавить ключ GCC -j1. После этого стало нормально собираться, даже если я указывал -j7.
В чём может быть дело? «Состояние гонки?» Что-то ещё?
На другом форуме посоветовали заменить в мейкфайле
$(CODEGEN_GENERATEDSOURCES) $(CODEGEN_GENERATEDHEADERS): $(CODEGEN_SRC)
xsltproc $(srcdir)/codegen/mk.xsl $(srcdir)/codegen/source.xml
на
$(CODEGEN_GENERATEDSOURCES) $(CODEGEN_GENERATEDHEADERS): .sources.generated
.sources.generated: $(CODEGEN_SRC)
xsltproc $(srcdir)/codegen/mk.xsl $(srcdir)/codegen/source.xml
touch .sources.generated
Чтобы xsltproc вызывалось строго 1 раз.
Достаточно ли этого? Если да, то как проверить, что исправление помогло? Иногда и при параллельной сборке собирается без ошибок.
Система Gentoo AMD64.