Типичные configure
сценарии выполняют лот запуска небольших подпроцессов. В Unix-подобных операционных системах это делается с помощью вызовов функций fork()
и exec()
, которые имеют особую семантику, которую необходимо сохранить (например, разделяемая память при копировании при записи после разветвления). В Windows подпроцессы создаются с CreateProcess()
, который имеет очень разную семантику (например, полностью отделяет пространство памяти от родительского). Для правильного выполнения Unix-подобных сценариев и программ MSYS необходимо выполнить большую работу по эмуляции, чтобы создание новых процессов в Windows работало, как fork()/exec()
в Unix. Это оказывается медленнее, чем в ОС, которая предлагает эти вызовы функций изначально.