I tried to compile Maelstrom under GCC 3.4 and it fails. Here is the error report: -I. -I. -O3 -march=athlon-xp -momit-leaf-frame-pointer -fomit-frame-pointer -funroll-loops -ffast-math -ftracer -fprefetch-loop-arrays -finline-limit=600 -mfpmath=387 -pipe -O3 -march=athlon-xp -momit-leaf-frame-pointer -fomit-frame-pointer -funroll-loops -ffast-math -ftracer -fprefetch-loop-arrays -finline-limit=600 -mfpmath=387 -pipe -I/usr/include/SDL -D_REENTRANT -I. -I./netlogic -I./screenlib -I./maclib -DLIBDIR=\"/usr/share/games/Maelstrom\" -c load.cpp g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"Maelstrom\" -DVERSION=\"3.0.6\" -I. -I. -O3 -march=athlon-xp -momit-leaf-frame-pointer -fomit-frame-pointer -funroll-loops -ffast-math -ftracer -fprefetch-loop-arrays -finline-limit=600 -mfpmath=387 -pipe -O3 -march=athlon-xp -momit-leaf-frame-pointer -fomit-frame-pointer -funroll-loops -ffast-math -ftracer -fprefetch-loop-arrays -finline-limit=600 -mfpmath=387 -pipe -I/usr/include/SDL -D_REENTRANT -I. -I./netlogic -I./screenlib -I./maclib -DLIBDIR=\"/usr/share/games/Maelstrom\" -c main.cpp In file included from main.cpp:14: buttonlist.h: In member function `void ButtonList::Add_Button(Uint16, Uint16, Uint16, Uint16, void (*)())': buttonlist.h:19: error: using typedef-name `ButtonList::button' after `struct' buttonlist.h: In member function `void ButtonList::Activate_Button(Uint16, Uint16)': buttonlist.h:33: error: using typedef-name `ButtonList::button' after `struct' buttonlist.h: In member function `void ButtonList::Delete_Buttons()': buttonlist.h:45: error: using typedef-name `ButtonList::button' after `struct' make[1]: *** [main.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/maelstrom-3.0.6-r1/work/Maelstrom-3.0.6' make: *** [all-recursive] Error 1 !!! ERROR: games-action/maelstrom-3.0.6-r1 failed. !!! Function games_src_compile, Line 122, Exitcode 2 !!! emake failed Reproducible: Always Steps to Reproduce: 1. 2. 3. emerge info: Portage 2.0.50-r10 (gcc34-x86-2004.2, gcc-3.4.1, glibc-2.3.4.20040808-r0, 2.6.8.1-mm4) ================================================================= System uname: 2.6.8.1-mm4 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.5.3 distcc 2.17 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=athlon-xp -momit-leaf-frame-pointer -fomit-frame-pointer -funroll-loops -ffast-math -ftracer -fprefetch-loop-arrays -finline-limit=600 -mfpmath=387 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=athlon-xp -momit-leaf-frame-pointer -fomit-frame-pointer -funroll-loops -ffast-math -ftracer -fprefetch-loop-arrays -finline-limit=600 -mfpmath=387 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache prelink" GENTOO_MIRRORS="http://gentoo.mirrors.pair.com http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/bmg-main /usr/local/fluidportage/trunk /usr/local/mycvsebuilds" SYNC="rsync://192.168.0.50/gentoo-portage" USE="3dfx 3dnow X aalib aim alsa apm avi berkdb bitmap-fonts bonobo cdr crypt cups curl dga directfb divx4linux dvd encode escreen esd etwin evo fbcon fdftk flac flash foomaticdb gb gdbm gif gimpprint gnome gnutls gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile icq imagemagick imlib ipv6 jabber jack java javascript jikes joystick jpeg ldap libg++ libwww mad maildir mbox mikmod mmx mng motif mozilla mpeg msn mysql ncurses nls nodroproot odbc oggvorbis openal opengl oscar oss pam pdflib perl png ppds python quicktime readline samba scanner sdl slang slp speex spell sse ssl svg svga szip tcltk tcpd tiff truetype usb vidoes wmf wxwindows x86 xml xml2 xmms xv yahoo zlib"
Created attachment 38368 [details, diff] Maelstrom gcc34 fix The patch simply removes the struct before "button" on the offending lines. They typedef'ed it to button, so the struct is not needed when they are using it after that.
Fixed in portage