If you compiling binutils and have these error, just remove d-exp.c and try again. d-exp.c should be generated by d-exp.y but binutils makefile won’t delete it during “make distclean”
make[3]: Leaving directory `/root/workspace/binutils/gdb' gcc -g -O2 -I. -I. -I./common -I./config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I./../zlib -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./gnulib/import -Ibuild-gnulib/import -DTUI=1 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wpointer-sign -Wmissing-prototypes -Wdeclaration-after-statement -Wmissing-parameter-type -Wold-style-declaration -Wold-style-definition -Wformat-nonliteral -c -o d-exp.o -MT d-exp.o -MMD -MP -MF .deps/d-exp.Tpo d-exp.c d-exp.c:269:0: warning: "EQUAL" redefined [enabled by default] d-exp.c: In function ‘d_parse_internal’: d-exp.c:1384:7: error: redeclaration of ‘yyerrstatus’ with no linkage yysize1 = yysize + yystrlen (yyf); ^ d-exp.c:1360:9: note: previous declaration of ‘yyerrstatus’ was here int yycount = 1; ^ d-exp.c:1403:16: error: redeclaration of ‘yyssa’ with no linkage yyf += 2; ^ make[2]: *** [d-exp.o] Error 1 make[2]: Leaving directory `/root/workspace/binutils/gdb' make[1]: *** [all-gdb] Error 2 make[1]: Leaving directory `/root/workspace/binutils' make: *** [all] Error 2