Я использую GNU make для создания группы статических библиотек, используя для этого неявные правила make.Эти правила запускают команду ar (1) для обновления библиотеки / архива.Профилирование показало, что время сборки сократилось бы, если бы я использовал опцию -j для запуска параллельных заданий во время сборки.
К сожалению, в руководстве по GNU make есть раздел http://www.gnu.org/software/make/manual/html_node/Archive-Pitfalls.html, в котором в значительной степени сказано, что make не предоставляет средств защиты от параллелизма для запуска ar (1), и, следовательно, он может (и делает) повреждать архив.В руководстве также указывается, что это может быть исправлено в будущем.
Одним из решений этого является использование http://code.google.com/p/ipcmd,, которое в основном выполняет блокировку семафора перед выполнением команды, таким образом сериализуя команды ar (1)строит архив.Это конкретное решение не подходит для меня, потому что я строю с помощью инструментов кросс-компиляции на основе mingw в Windows.
Есть более простое или лучшее решение этой проблемы?