tags:

views:

38

answers:

1

Hi,

A year back i have developed a small script in perl for a customer and developed its .exe using pp . we delivered .exe file along with basic cygwin(1.52) install files to run that .exe to customer.

Now we got an enhancement in the script .we lost all dev environment for cygwin .Again we installed fresh cygwin with 1.7 version ,coded and generated .exe file.this file is not running in the customer environment who have cygwin 1.52.Just it will be balnk after executing the .exe

we cannot ask customer to upgarde the test environment. what is other way to make it run .exe with cygwin dll 1.7 on cygwin 1.52. Any help would be higly appreciated.

Rgds, sowm

+1  A: 

The developers of Cygwin are strict about upward compatibility, but they don't try to provide backward compatibility between major releases, like between 1.5 and 1.7. This means you can build a program on 1.7 that runs on 1.5 only as long as you avoid calling functions that were added to the Cygwin DLL in 1.7.

Most likely the reason your code calls 1.7-only functions is that it is using libraries that auto-discover platform features. There could be other reasons, but without any details about what exactly is failing, it's difficult to guess.

If the problem is due to third-party libraries, as I'm guessing, it may be practical to spend time to figure out how to make them revert to the common functionality provided by both 1.5 and 1.7. For instance, with an autoconf-based system, you can hand-edit the config.h file the configure script produces to turn off use of some discovered features. This in turn means building all those libraries from source yourself, rather than downloading binary versions from the Cygwin project repository and using them directly.

It may be easier to pull a Cygwin 1.5 environment out of the Cygwin Time Machine.

By the way, you are aware that distributing Cygwin and executables built with it requires that those executables comply with the GPL, or that you buy a Cygwin commercial distribution license, right? If not see the FAQ.

Warren Young