[petsc-users] Improve of win32fe

Satish Balay balay at mcs.anl.gov
Tue Apr 13 15:53:02 CDT 2010

We have now added a copyright notice in the source tree. Its similar
to petsc license - and is cygwin.dll compatible [but not GPL]



On Sat, 27 Mar 2010, Gong Ding wrote:

> Dear Petsc developers
> For long time I am using win32fe as an excellent tool to port
> my code to windows. However, I found it slows down the compiling speed too much.
> Yesterday I investigate the code and find the my_cygwin_conv_to_full_win32_path
> is the bottleneck. For each unix path to windows path convertion, a cygwin command
> 'cygpath -aw PATH' should be executed. My code has many include path and source file, as a result, 
> compiling each cc file involves ~20 calls of cygpath. 
> And convert path of .o file when linking takse more than 30s.
> I'd like to replace cygpath execution with cygwin function cygwin_conv_path.
> Of course, this function only exist in cygwin system.
> So I use cygwin-gcc to compile win32fe (only with some small changes) 
> There's a new problem appear. The new win32fe can not accept environment variable loaded in cygwin.bat.
> I then use batch file to wrap the win32fe.exe and set environment variable for cl/icl in the batch file.
> Now everything is ok. I tested with my code. The compiling time is greatly reduced, from 2h to 52min.
> I'd like to share this method. But there are some license problem.
> First, I even don't know the license of win32fe.
> Second, since new version of win32fe dependent on cygwin (cygwin1.dll), it must be GPL.
> I wonder if I can receive a notice that I can release it under GPL.
> BTW, there seems a small bug at compilerfe.cpp 340-341
>       linkarg.push_front(outfile);
>       OutputFlag = --linkarg.begin();
> I think it should be
>       OutputFlag = linkarg.begin();
> Sincerely
> Gong Ding

More information about the petsc-users mailing list