Разработчики Cygwin строги о совместимости снизу вверх, но они не пытаются обеспечить обратную совместимость между основными выпусками, как между 1,5 и 1,7. Это означает, что вы можете создать программу на 1.7, которая работает на 1.5, только до тех пор, пока вы не будете вызывать функции, которые были добавлены в Cygwin DLL в 1.7.
Скорее всего, причиной того, что ваш код вызывает только 1.7-функции, является то, что он использует библиотеки, которые автоматически обнаруживают возможности платформы. Могут быть и другие причины, но без каких-либо подробностей о том, что именно не удается, трудно догадаться.
Если проблема связана с сторонними библиотеками, как я предполагаю, может быть целесообразно потратить время на то, чтобы заставить их вернуться к общей функциональности, предоставляемой как 1.5, так и 1.7. Например, с помощью системы на основе autoconf вы можете вручную отредактировать файл config.h
, созданный скриптом configure, чтобы отключить использование некоторых обнаруженных функций. Это, в свою очередь, означает создание всех этих библиотек из исходного кода, а не загрузку двоичных версий из репозитория проектов Cygwin и их использование напрямую.
Может быть проще вытащить окружающую среду Cygwin 1.5 из Cygwin Time Machine.
Кстати, вы знаете, что для распространения Cygwin и исполняемых файлов, построенных с ним, требуется, чтобы эти исполняемые файлы соответствовали GPL или покупали коммерческую лицензию Cygwin, так? Если не see the FAQ.