Zsh's makepro.awk script currently pulls all the prototypes out of the source file regardless of whether they're compiled into the image. This causes a problem with with exec.pro, since it pulls out prototypes for current_limits, which is in terms of the RLIM_NLIMITS #define. If HAVE_GETRLIMIT isn't defined, RLIM_NLIMITS probably isn't either. The upshot is that exec.pro doesn't compile when running under cygwin. It also causes a few warnings to have prototypes for static functions that are never defined. The fix I used was to have makepro.awk handle things like /**/ #ifdef HAVE_GETRLIMIT and spit them out in the .pro file along with the prototypes like so: #ifdef HAVE_GETRLIMIT extern struct rlimit current_limits[RLIM_NLIMITS]; extern struct rlimit limits[RLIM_NLIMITS]; extern int zsetlimit _((int limnum,char*nam)); extern int setlimits _((char*nam)); #endif /* HAVE_GETRLIMIT */ ...which nicely avoids the problem.