Hi,
Hopefully there isn't a bug in the GCC cross-compiler article. I wrote the latest revision, but as I don't use Windows, I was unable to test it with Cygwin. I've heard of people succeeding since then, I think though. That said, my guess is that you are doing someone wrong. Are you following the tutorial's instructions to the letter? Please read it more carefully. Note that you cannot use the binutils and gcc source code that cygwin uses, you should use the official binutils and gcc source code.
The problem seems to be related to fixincludes, which is a script that GCC uses to forcefully "fix" headers on its target system (such that they are more standards compliant). You are building a fully freestanding compiler (i586-elf-gcc) and it has no system root that contains headers for your OS (it's not needed, yet), so fixincludes shouldn't be run. This makes me wonder if you have accidentally used the wrong configure line. Could you post the ./configure line you used for GCC with variables expanded? You remembered to pass --without-headers right? Additionally, please attach more output from Make, there may be something further up that you missed. Please also double-check that you have installed all the dependencies for GCC.
If you deviated somehow from the tutorial, please tell us immediately.
Edit:
cross-compiler for cygwin
Do you mean "cross-compiler inside the cygwin environment" - or are you trying to build a cygwin compiler that produces executables for cygwin? If you are doing the latter, this means you are
not building a cross-compiler and things will explode much like this.