I have tried to build a binutils for target cygwin by both native build under Windows XP and cross build under Ubuntu 8.04. The problem is if the yacc parser is not installed, the build of LD will fail because the ld/deffilep.y file can not be parsed. This takes me time to find out the problem because the error is something like "main is duplicated" and provide no information of the yacc. Suggestion is to detect the existence of yacc if target is cygwin while running the configure script.
Were you building from a release tarball, a snapshot, or cvs? If from a proper release you should have deffilep.c and deffilep.h so yacc is not needed. Otherwise, yes, you do need yacc available.
Apparently a misdiagnosed generic error (not cygwin-specific), as was reported *with a quote from the build log* in <http://sourceware.org/ml/binutils/2012-05/msg00151.html>. It took us a long time to diagnose this because this bug report only was something like "main is duplicated" and provided no information of the log. :] The error now (first) happening for a different file is likely due to changes since 2008.
Missing bison/flex is diagnosed.