-mno-cygwin essentially turns gcc into the gcc provided by mingw.org.
Read the docs/wiki/faq/etc at that site for more information. Note that
when you use gcc -mno-cygwin your search paths will be modified so that
no Cygwin libraries/headers will be found, instead the mingw ones will
be searched (/usr/include/mingw, /usr/lib/mingw). Essentially this is
just a shortcut for compiling with the mingw toolchain under Cygwin - do
not get confused and think that this somehow lets you use Cygwin library
functions in any shape or form. If you use mingw or -mno-cygwin, you
are essentially programming directly at the win32 API and the MSVCRT,
you have no unix emulation at all other than what is provided by the
microsoft C library.