Bruno, the progreloc file is broken on cygwin 1.7, because it uses cygwin_conv_to_posix_path. As of cygwin 1.7, longer filenames are supported, so this API is deprecated because it has no way to prevent silent buffer overflow. Cygwin 1.7 adds the new API cygwin_conv_path to solve the shortcomings in the old API.
However, trying to use cygwin_conv_path seems backwards to me, since the point of Cygwin is to be a Linux emulation. Therefore, I think that this module should attempt to use /proc/self/exe first, as on Linux, and only fall back to GetModuleFileName/cygwin_conv_to_posix_path if /proc failed (which implies that cygwin is so old that cygwin_conv_path does not exist but also that cygwin_conv_to_posix_path is safe since long file names are not possible). -- Eric Blake