Bug 54270 - xmame 0.83.1 fails to compile on amd64 with gcc 3.4
Bug#: 54270 Product:  Gentoo Linux Version: unspecified Platform: AMD64
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: games@gentoo.org Reported By: andrew@alshain.org.uk
Component: Games
URL: 
Summary: xmame 0.83.1 fails to compile on amd64 with gcc 3.4
Keywords:  
Status Whiteboard: 
Opened: 2004-06-17 22:37 0000
Description:   Opened: 2004-06-17 22:37 0000
xmame 0.83.1 compiles for a while before exiting with an error at the file
src/sound/fm.c. 

Reproducible: Always
Steps to Reproduce:
1. emerge -u games-emulation/xmame
2.
3.
Actual Results:  
src/sound/fm.c: In function `FM_STATUS_FLAG': 
src/sound/fm.c:853: internal compiler error: Segmentation fault 
Please submit a full bug report, 
with preprocessed source if appropriate. 
See <URL:http://bugs.gentoo.org/> for instructions. 
Compiling src/sound/hc55516.c ... 
Preprocessed source stored 
into /data/port_tmp/portage/xmame-0.83.1/temp/ccZK30WV.out file, please attach 
this to your bugreport. 
make: *** [xmame.obj/sound/fm.o] Error 1 
make: *** Waiting for unfinished jobs.... 

!!! ERROR: games-emulation/xmame-0.83.1 failed. 
!!! Function src_compile, Line 160, Exitcode 2 
!!! emake failed (SDL) 

Contents of ccZK30WV.out can be found here: 
http://www.star.ucl.ac.uk/~adcw/ccZK30WV.out 



Expected Results:  
compiled 

Portage 2.0.50-r8 (gcc34-amd64-2004.1, gcc-3.4.0, glibc-2.3.4.20040605-r0, 
2.6.5-gentoo-r1) 
================================================================= 
System uname: 2.6.5-gentoo-r1 x86_64 4 
Gentoo Base System version 1.4.16 
ccache version 2.3 [enabled] 
Autoconf: sys-devel/autoconf-2.59-r4 
Automake: sys-devel/automake-1.8.5-r1 
ACCEPT_KEYWORDS="amd64 ~amd64" 
AUTOCLEAN="yes" 
CFLAGS="-O2 -march=athlon64 -mtune=athlon64 -pipe -maccumulate-outgoing-args 
-fomit-frame-pointer -fweb" 
CHOST="x86_64-pc-linux-gnu" 
COMPILER="gcc3" 
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config
/usr/kde/3.2/share/config /usr/kde/3/share/config
/usr/lib/mozilla/defaults/pref /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/qmail/control" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" 
CXXFLAGS="-O2 -march=athlon64 -mtune=athlon64 -pipe -maccumulate-outgoing-args 
-fomit-frame-pointer -fweb" 
DISTDIR="/usr/portage/distfiles" 
FEATURES="autoaddcvs ccache sandbox" 
GENTOO_MIRRORS="http://gentoo.blueyonder.co.uk 
http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo 
http://www.ibiblio.org/pub/Linux/distributions/gentoo" 
MAKEOPTS="-j2" 
PKGDIR="/usr/portage/packages" 
PORTAGE_TMPDIR="/data/port_tmp" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="/usr/local/portage" 
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" 
USE="X aalib alsa amd64 apache2 apm arts ati avi berkdb bonobo breakme cdr 
crypt cups dga dga2 doc dvd dvdr encode esd foomaticdb gdbm ggi gif gimpprint 
gnome gnome2 gphoto2 gpm gstreamer gtk gtk2 gtkhtml guile imap imlib jpeg kde 
ldap libg++ libwww maildir mikmod motif mozilla mpeg nas ncurses nls oggvorbis 
opengl oss pam pdflib perl png python qt quicktime radeon readline sdl slang 
spell ssl tcltk tcpd tetex theora truetype unicode v4l v4l2 wmf xml xml2 xmms 
xv xvid zlib"

------- Comment #1 From Mr. Bones. 2004-06-17 22:46:30 0000 -------
src/sound/fm.c:853: internal compiler error: Segmentation fault

Smells like bad hardware to me.  Does this box pass overnight memtest86?

------- Comment #2 From Andrew Williams 2004-06-17 23:43:13 0000 -------
I thought memtest86 was only for the x86. Certainly it causes my machine to
reboot instantly. Everything else works fine.

------- Comment #3 From Mr. Bones. 2004-06-18 00:06:08 0000 -------
memtest86-3.0-r1.ebuild claims to be stable on amd64.  Please try it out.

------- Comment #4 From Andrew Williams 2004-06-18 08:11:52 0000 -------
From the memtest86 Changelog:

  18 Jun 2004; Jeremy Huddleston <eradicator@gentoo.org>
  memtest86-3.0-r1.ebuild:
  This contains 32bit x86 assembly and won't work on amd64.

I seriously doubt it's a hardware problem as 0.82.1 compiles and I have no problem compiling any other software on my machine, and it's extremely stable.

------- Comment #5 From Andrew Williams 2004-06-18 14:22:27 0000 -------
Okay, I think I've solved the problem. Looking at the top level Makefile shows
a line:

CFLAGS=-O2 -march=athlon64 -mtune=athlon64 -pipe -maccumulate-outgoing-args
-fomit-frame-pointer -fweb -Wno-unused -fomit-frame-pointer -fstrict-aliasing
-fstrength-reduce -ffast-math -falign-functions=2 -falign-jumps=2
-falign-loops=2 -O -Wall -Wno-unused

If I remove -ffast-math it appears to compile correctly. I've noticed that
another program that uses the -ffast-math option, xephem-3.6, also segfaults.
This also compiles correctly when I remove -ffast-math, so maybe it's a
compiler bug. I'm using gcc-3.4.0-r6.

------- Comment #6 From Mr. Bones. 2004-06-18 14:44:39 0000 -------
Nice work.  Thanks for tracking it down.  I've taken out the -fast-math stuff
for amd64 in the ebuild.  No rev bump since it's such a beast to compile (at least for everyone except amd64).