I tried to compile a cvs checkoout of pure data (see http://puredata.info and ). The build process fails reproducibly on src/filter.c: gcc -O3 -mfpmath=sse -mmmx -msse -fprefetch-loop-arrays -DPD -DDL_OPEN -DNEWHASH -DLOCKFREE -DUNISTD -DUNIX - DUSEAPI_OSS -DPA_LITTLE_ENDIAN -DPA_USE_OSS -DINSTALL_PREFIX=\"/usr/local\" - DUSEAPI_ALSA -DPA_USE_ALSA -DUSEAPI_JACK -DUSEAPI_PORTAUDIO -DPA19 -DNDEBUG -DHAVE_ALLOCA -D_LARGEFILE64_SOURCE -DPD_INTERNAL -Isrc -Iportaudio/ pa_common -Iportaudio/pablio -c -o src/d_filter.o src/d_filter.c src/d_filter.c: In function `sigbiquad_perform': src/d_filter.c:374: error: insn does not satisfy its constraints: (insn 177 117 67 4 0xb7d42c8c (set (reg/v:SF 29 emm0 [73]) (const_double:SF 0 [0x0] 0.0 [0x0.0p+0])) 62 {*movsf_1} (nil) (nil)) src/d_filter.c:374: internal compiler error: in build_def_use, at regrename.c: 782 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://bugs.gentoo.org/> for instructions. The bug is not reproducible, so it is likely a hardware or OS problem. scons: *** [src/d_filter.o] Error 1 scons: building terminated because of errors. I also tried changing -O3 to -O2, to no avail.
I forgot: the source looks okay, so it seems like a gcc fault to me.
emerge --info, please
emerge info: Portage 2.0.51.22-r3 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r1, 2.6. 12-gentoo-r10 i686) ================================================================= System uname: 2.6.12-gentoo-r10 i686 Intel(R) Pentium(R) 4 CPU 2.53GHz Gentoo Base System version 1.6.13 dev-lang/python: 2.3.5-r2 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O3 -march=pentium4 -funroll-loops -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/ share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb / usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium4 -funroll-loops -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/ distributions/gentoo" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="x86 X a52 aac aalib alsa apm arts avi bash-completion berkdb bitmap-fonts cdparanoia cdr crypt cups dri dv dvdr eds encode fam ffmpeg foomaticdb gdbm gif gphoto2 gpm gstreamer gtk gtk2 ieee1394 imlib ipv6 jack jpeg kde kdeenablefinal kdexdeltas libcaca libg++ libwww mad matroska mikmod mime mmx motif mp3 mpeg ncurses nls nocd nvidia ogg oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl spell sse ssl tcltk tcpd theora tiff truetype truetype- fonts type1-fonts usb v4l vorbis win32codecs xml2 xmms xv xvid zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTDIR_OVERLAY hope this helps, thoralf.
and btw: the sources live in a cvs repository at sourceforge, see https:// puredata.org/docs/developer/sourceforge_cvs . i used the devel_0.39 branch.
looks like you're using -mfpmath try building the code without using that flag
wow, that worked! Since I don't have much of a clue about scons, I simply hacked src/SConscript to call g++ with -mfpmath=sse,387 . Now, afaik, the code generated by this option is usually a little slower than the one produced with -mfpmath=sse. is the latter generally a no-no with gentoo's gcc ?
using -mfpmath is generally discouraged, especially with gcc-3.3.x ... it's known to be unstable