This is the important part of the log file : make[1]: Entering directory `/tmp/portage/dev-embedded/sdcc-2.8.0/work/sdcc/src' gawk -f ./version.awk ../ChangeLog > version.h bison -y -d -v -o SDCCy.c SDCC.y x86_64-pc-linux-gnu-gcc -c -march=native -O3 -pipe -msse3 -Wall -DINDEXLIB -I. -I. -I./../../support/Util -Wall -march=native -O3 -pipe -msse3 -o obj/aslex.o ../asxxsrc/aslex.c x86_64-pc-linux-gnu-g++ -march=native -O3 -pipe -msse3 -Wall -I. -I.. -I.. -I../sim.src -I../gui.src -c cmdlex.cc -o cmdlex.o x86_64-pc-linux-gnu-gcc -c -march=native -O3 -pipe -msse3 -Wall -DINDEXLIB -I. -I. -I./../../support/Util -Wall -march=native -O3 -pipe -msse3 -o obj/asnoice.o ../asxxsrc/asnoice.c x86_64-pc-linux-gnu-gcc -c -march=native -O3 -pipe -msse3 -Wall -DINDEXLIB -I. -I. -I./../../support/Util -Wall -march=native -O3 -pipe -msse3 -o obj/dbuf.o ../../support/Util/dbuf.c flex -t SDCC.lex >SDCClex.c cmdlex.cc: In member function ‘int yyFlexLexer::yyinput()’: cmdlex.cc:1171: error: ‘EOF’ was not declared in this scope make[2]: *** [cmdlex.o] Error 1 make[2]: Leaving directory `/tmp/portage/dev-embedded/sdcc-2.8.0/work/sdcc/sim/ucsim/cmd.src' make[2]: Entering directory `/tmp/portage/dev-embedded/sdcc-2.8.0/work/sdcc/sim/ucsim/sim.src' Reproducible: Always Portage 2.2_rc33 (default/linux/amd64/2008.0/developer, gcc-4.4.0, glibc-2.10.1-r0, 2.6.30 x86_64) ================================================================= System uname: Linux-2.6.30-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_4200+-with-gentoo-2.0.1 Timestamp of tree: Mon, 22 Jun 2009 21:30:20 +0000 distcc 3.1 x86_64-pc-linux-gnu [disabled] ccache version 2.4 [disabled] app-shells/bash: 4.0_p24 dev-java/java-config: 2.1.8-r1 dev-lang/python: 2.6.2-r1 dev-python/pycrypto: 2.0.1-r8 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.6.4 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.4.3-r3 sys-apps/sandbox: 2.0 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2, 1.11 sys-devel/binutils: 2.19.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.29 ABI="amd64" ACCEPT_KEYWORDS="amd64 ~amd64"
My personal guess (from NEWS): * Changes in version 2.3a, 2006-09-13: ... ** Except for LALR(1) parsers in C with POSIX Yacc emulation enabled (with `-y', `--yacc', or `%yacc'), Bison no longer generates #define statements for associating token numbers with token names. Removing the #define statements helps to sanitize the global namespace during preprocessing, but POSIX Yacc requires them. Bison still generates an enum for token names in all cases.
You can see in my copy/paste that bison is actually called with this option '-y'. (i dont know if this is a "LALR" though),.... does it matter?
today dev-embedded/sdcc-2.8.0 failed with another error : ... SDCCset.c:321: note: initialized from here x86_64-pc-linux-gnu-gcc -march=native -O3 -pipe -msse3 -Wall -march=native -O3 -pipe -msse3 -Wall -march=native -O3 -pipe -msse3 -I. -I.. -I./../support/Util -I. -I. -c SDCClabel.c -o SDCClabel.o x86_64-pc-linux-gnu-gcc -march=native -O3 -pipe -msse3 -Wall -march=native -O3 -pipe -msse3 -Wall -march=native -O3 -pipe -msse3 -I. -I.. -I./../support/Util -I. -I. -c SDCCBBlock.c -o SDCCBBlock.o x86_64-pc-linux-gnu-g++ -march=native -O3 -pipe -msse3 -Wall -I. -I.. -I.. -I../cmd.src -I../sim.src -I../gui.src -c shc08.cc -o shc08.o x86_64-pc-linux-gnu-g++ -march=native -O3 -pipe -msse3 -Wall -Wl,-O1 -o shc08 glob.o inst.o simhc08.o hc08.o shc08.o -L.. -lsim -lucsimutil -lguiucsim -lcmd -lsim -lnsl /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lcmd collect2: ld returned 1 exit status make[2]: *** [shc08] Error 1
+ 10 Aug 2009; Samuli Suominen <ssuominen@gentoo.org> sdcc-2.8.0.ebuild, + +files/sdcc-2.8.0-gcc44.patch: + Fix building with GCC 4.4+ wrt #275126. The ebuild is still bogus; prestrips binaries and scanelf prints out warnings about malformed ar -archives