The Cygwin versions of GPC and GCC by default produce Cygwin binaries. These are binaries which make use of and require the Cygwin DLL ("Cygwin1.dll") - the library that implements a POSIX emulation for Windows 9x and NT. However, the Cygwin-based compilers can also produce Mingw32 binaries - i.e., those which dispense with the unix emulation of the Cygwin DLL, and only use DLLs which are supplied as standard with Windows (meaning that these binaries do not need the Cygwin DLL to run). Mingw32 programs tend to be smaller, and faster than Cygwin programs as a result of not having the overheads of the unix emulation layer. Also, they have less restrictive licensing conditions than Cygwin programs. Please see the Cygwin web site for licensing details on Cygwin programs.
To produce Mingw32 binaries with the Cygwin compilers, they need to
be run with the -mno-cygwin switch. It may also be necessary to
specify the directories where the Mingw32 libraries can be found (using
the "-L" switch).
Note that the Mingw32 compilers cannot produce Cygwin binaries.