xmame and xmess 0.103 fail to compile under gcc-3.3.x with what appears to be an invalid compiler flag. The error message is as follows: # @echo 'Compiling src/expat/xmlrole.c ...' gcc -mcpu=ultrasparc3 -mvis -O2 -pipe -Wa,-Av8plusa -std=gnu89 -Wall -Wno-unused -Wdeclaration-after-statement -Isrc/expat '-DINLINE=static __inline__' -DALIGN_INTS -DALIGN_SHORTS -D__ARCH_linux -D__CPU_risc -DSDL -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DPI=M_PI -DXMAME -DUNIX -DSIGNED_SAMPLES -DCLIB_DECL= -DHAVE_UNISTD_H=1 -DHAS_CDDA=1 -DHAS_CUSTOM=1 -DHAS_SAMPLES=1 -DHAS_DAC=1 -DHAS_DMADAC=1 -DHAS_DISCRETE=1 -DHAS_AY8910=1 -DHAS_YM2203=1 -DHAS_YM2151=1 -DHAS_YM2608=1 -DHAS_YM2610=1 -DHAS_YM2610B=1 -DHAS_YM2612=1 -DHAS_YM3438=1 -DHAS_YM2413=1 -DHAS_YM3812=1 -DHAS_YM3526=1 -DHAS_YMZ280B=1 -DHAS_Y8950=1 -DHAS_SN76477=1 -DHAS_SN76496=1 -DHAS_POKEY=1 -DHAS_TIA=1 -DHAS_NES=1 -DHAS_ASTROCADE=1 -DHAS_NAMCO=1 -DHAS_NAMCO_15XX=1 -DHAS_NAMCO_CUS30=1 -DHAS_NAMCO_52XX=1 -DHAS_NAMCO_54XX=1 -DHAS_NAMCO_63701X=1 -DHAS_NAMCONA=1 -DHAS_TMS36XX=1 -DHAS_TMS5110=1 -DHAS_TMS5220=1 -DHAS_VLM5030=1 -DHAS_OKIM6295=1 -DHAS_MSM5205=1 -DHAS_MSM5232=1 -DHAS_UPD7759=1 -DHAS_HC55516=1 -DHAS_K005289=1 -DHAS_K007232=1 -DHAS_K051649=1 -DHAS_K053260=1 -DHAS_K054539=1 -DHAS_SEGAPCM=1 -DHAS_RF5C68=1 -DHAS_CEM3394=1 -DHAS_C140=1 -DHAS_QSOUND=1 -DHAS_SAA1099=1 -DHAS_IREMGA20=1 -DHAS_ES5505=1 -DHAS_ES5506=1 -DHAS_BSMT2000=1 -DHAS_YMF262=1 -DHAS_YMF278B=1 -DHAS_GAELCO_CG1V=1 -DHAS_GAELCO_GAE1=1 -DHAS_X1_010=1 -DHAS_MULTIPCM=1 -DHAS_C6280=1 -DHAS_SP0250=1 -DHAS_SCSP=1 -DHAS_PSXSPU=1 -DHAS_YMF271=1 -DHAS_ICS2115=1 -DHAS_ST0016=1 -DHAS_C352=1 -DHAS_VRENDER0=1 -DHAS_VOTRAX=0 -DHAS_ES8712=1 -DHAS_RF5C400=1 -DHAS_Z80=1 -DHAS_Z180=1 -DHAS_8080=1 -DHAS_8085A=1 -DHAS_M6502=1 -DHAS_M65C02=1 -DHAS_M65SC02=1 -DHAS_M65CE02=0 -DHAS_M6509=0 -DHAS_M6510=1 -DHAS_M6510T=0 -DHAS_M7501=0 -DHAS_M8502=0 -DHAS_N2A03=1 -DHAS_DECO16=1 -DHAS_M4510=0 -DHAS_H6280=1 -DHAS_I86=1 -DHAS_I88=1 -DHAS_I186=1 -DHAS_I188=0 -DHAS_I286=0 -DHAS_I386=1 -DHAS_I486=0 -DHAS_PENTIUM=1 -DHAS_MEDIAGX=1 -DHAS_V20=1 -DHAS_V30=1 -DHAS_V33=1 -DHAS_V60=1 -DHAS_V70=1 -DHAS_I8035=1 -DHAS_I8039=1 -DHAS_I8048=1 -DHAS_N7751=1 -DHAS_I8X41=1 -DHAS_I8051=1 -DHAS_I8052=1 -DHAS_I8751=1 -DHAS_I8752=1 -DHAS_M6800=1 -DHAS_M6801=1 -DHAS_M6802=1 -DHAS_M6803=1 -DHAS_M6808=1 -DHAS_HD63701=1 -DHAS_NSC8105=1 -DHAS_M6805=1 -DHAS_M68705=1 -DHAS_HD63705=1 -DHAS_HD6309=1 -DHAS_M6809=1 -DHAS_M6809E=1 -DHAS_KONAMI=1 -DHAS_M68000=1 -DHAS_M68008=0 -DHAS_M68010=1 -DHAS_M68EC020=1 -DHAS_M68020=1 -DHAS_M68040=1 -DHAS_T11=1 -DHAS_S2650=1 -DHAS_TMS34010=1 -DHAS_TMS34020=1 -DHAS_TMS9900=0 -DHAS_TMS9940=0 -DHAS_TMS9980=1 -DHAS_TMS9985=0 -DHAS_TMS9989=0 -DHAS_TMS9995=1 -DHAS_TMS99000=0 -DHAS_TI990_10=0 -DHAS_TMS99105A=0 -DHAS_TMS99110A=0 -DHAS_Z8000=1 -DHAS_TMS32010=1 -DHAS_TMS32025=1 -DHAS_TMS32026=1 -DHAS_TMS32031=1 -DHAS_CCPU=1 -DHAS_ADSP2100=1 -DHAS_ADSP2101=1 -DHAS_ADSP2104=1 -DHAS_ADSP2105=1 -DHAS_ADSP2115=1 -DHAS_ADSP2181=1 -DHAS_PSXCPU=1 -DHAS_ASAP=1 -DHAS_UPD7810=1 -DHAS_UPD7807=1 -DHAS_ARM=1 -DHAS_ARM7=1 -DHAS_JAGUAR=1 -DHAS_R3000=1 -DHAS_R4600=1 -DHAS_R4700=1 -DHAS_R5000=1 -DHAS_QED5271=1 -DHAS_RM7000=1 -DHAS_SH2=1 -DHAS_DSP32C=1 -DHAS_PIC16C54=0 -DHAS_PIC16C55=1 -DHAS_PIC16C56=0 -DHAS_PIC16C57=1 -DHAS_PIC16C58=0 -DHAS_G65816=1 -DHAS_SPC700=1 -DHAS_E116T=1 -DHAS_E116XT=0 -DHAS_E116XS=0 -DHAS_E116XSR=0 -DHAS_E132N=1 -DHAS_E132T=0 -DHAS_E132XN=0 -DHAS_E132XT=1 -DHAS_E132XS=0 -DHAS_E132XSR=0 -DHAS_GMS30C2116=1 -DHAS_GMS30C2132=0 -DHAS_GMS30C2216=0 -DHAS_GMS30C2232=0 -DHAS_I960=1 -DHAS_H83002=1 -DHAS_V810=1 -DHAS_M37710=1 -DHAS_PPC403=1 -DHAS_PPC602=1 -DHAS_PPC603=1 -DHAS_SE3208=1 -DHAS_MC68HC11=1 -DHAS_ADSP21062=1 -DHAS_DSP56156=1 -I. -Isrc -Isrc/includes -Isrc/debug -Isrc/unix -Ixmame.obj/cpu/m68000 -Isrc/cpu/m68000 -DHAVE_MMAP -DCRLF=2 -DSYSDEP_DSP_OSS -DSYSDEP_MIXER_OSS -DHAVE_SNPRINTF -DHAVE_VSNPRINTF -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -o xmame.obj/expat/xmlrole.o -c src/expat/xmlrole.c cc1: error: unrecognized option `-Wdeclaration-after-statement' make: *** [xmame.obj/expat/xmlrole.o] Error 1 make: *** Waiting for unfinished jobs.... cc1: error: unrecognized option `-Wdeclaration-after-statement' make: *** [xmame.obj/expat/xmlparse.o] Error 1 !!! ERROR: games-emulation/xmame-0.103 failed. !!! Function src_compile, Line 143, Exitcode 2 !!! emake failed (SDL) !!! If you need support, post the topmost build error, NOT this status message. This happens for me on ~sparc and sparc, which are both gcc-3.3.x based. Let me know if you want more info (like emerge info). Cheers
Created attachment 77942 [details, diff] Makefile patch for xmame 0.103 This patch comments out the use of gcc 3.4.x's -Wdeclaration-after-statement in makefile.{mame,mes,unix}
Created attachment 77943 [details, diff] Modified xmame ebuild to include makefile patch This slightly modified 0.103 ebuild applies the makefile patch.
Happens for me on x86 with gcc 3.3.6, too. Further research shows that: a) -Wdeclaration-after-statement first appeared in gcc 3.4.x b) The only reference to this qualifier in xmame is in these files: makefile.mame: -Wdeclaration-after-statement makefile.mes: -Wdeclaration-after-statement makefile.unix: CFLAGS += -Wdeclaration-after-statement c) Upstream maintainers has been notified via their official xmame mailing list, as there is no official bug report web site or procedure that I am aware of. d) I have provided two files (attached here) as a working patch to the 0.103 ebuild as an interim workaround. It just simply comments out that flag from the makefiles. e) The Gentoo maintainers could either incorporate my patch or they could choose to hard mask 0.103 if/until fixed upstream. (It's not clear at this time if upstream will consider changing this.) f) xmame 0.102 had this qualifier commented out; it was apparently first enabled by default in version 0.103. I have tested the modified ebuild + patch, and it builds correctly now, and also runs ok.
I didn't realize xmess was in a separate ebuild. The good news is that, however, the patch and ebuild modification is pretty much identical for xmess as what I offered for xmame.
I've talked briefly with the official upstream maintainer for xmame/xmess, Lawrence Gold. He will comment out the gcc flag in question for version 0.104. So it appears that the best course of action to resolve this bug is to review my proposed patches for xmame and xmess... and if satisfactory, apply them to Portage as xmame/xmess 0.103-r1. Then once (whenever that is) 0.104 is released, remove the epatch line from the ebuild for the 0.104 ebuild files.
Created attachment 77965 [details, diff] Makefile patch for xmess 0.103 This patch comments out the use of gcc 3.4.x's -Wdeclaration-after-statement in makefile.{mame,mes,unix} Note: this is for xmess. The earlier one was for xmame.
Created attachment 77966 [details, diff] Modified xmess ebuild to include makefile patch This slightly modified 0.103 ebuild applies the makefile patch. Note: this is for xmess; the earlier one was for xmame.
Version 0.104 of xmame and xmess has been released; it addresses this build issue for anyone using gcc older than 3.4. Should be able to close this bug report once the 0.104 ebuilds has been put in Portage. 0.104 itself has already been released by the xmame/xmess upstream maintainer.
pretty sure this is fixed already.