I wanted to upgrade xmms on my AMD-K6. But emerge aborted due to a compile-error in Input/mpg123/layer3.c. $ emerge -u xmms [...] Making all in mpg123 make[3]: Entering directory `/var/tmp/portage/xmms-1.2.8-r2/work/xmms-1.2.8/Input/mpg123' [...] /bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../xmms -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/us /lib/glib/include -D_REENTRANT -I/usr/X11R6/include -DI386_ASSEM -I../../intl -I../.. -O3 -march=k6-3 -pipe -mmmx -m3dnow -frerun-cse-a ter-loop -frerun-loop-opt -falign-functions=4 -Wall -Wpointer-arith -finline-functions -ffast-math -fomit-frame-pointer -funroll-all-loops -c layer3.c gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../xmms -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -D_REENTRANT -I/us /X11R6/include -DI386_ASSEM -I../../intl -I../.. -O3 -march=k6-3 -pipe -mmmx -m3dnow -frerun-cse-after-loop -frerun-loop-opt -falign-funct ons=4 -Wall -Wpointer-arith -finline-functions -ffast-math -fomit-frame-pointer -funroll-all-loops -c layer3.c -fPIC -DPIC -o layer3.lo {standard input}: Assembler messages: {standard input}:4602: Error: value of ffffffffffffff7b too large for field of 1 bytes at 0000000000000ba9 distcc[9898] ERROR: compile on localhost failed make[3]: *** [layer3.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/xmms-1.2.8-r2/work/xmms-1.2.8/Input/mpg123' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/xmms-1.2.8-r2/work/xmms-1.2.8/Input' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/xmms-1.2.8-r2/work/xmms-1.2.8' make: *** [all-recursive-am] Error 2 !!! ERROR: media-sound/xmms-1.2.8-r2 failed. !!! Function src_compile, Line 115, Exitcode 2 !!! (no error message) hm - not my fault. 'unroll-all-loops' seems to being added by xmms's configure script. So I compiled layer3.c by hand with the same gcc-call as abough but without 'unroll-all-loops'. $ gcc -DHAVE_CONFIG_H -I. [...] $ cd /var/tmp/portage/xmms-1.2.8-r2/work/xmms-1.2.8/ $ make [...no further compile-errors...] $ cd xmms $ ./xmms ... ok, seems to work perfectly so far. But how could I get xmms-1.2.8 emerged? I started "emerge -u xmms", waited 'til compiling started, stoped the youngest "make all-am"-processes ("kill -STOP ..."), removed the "-funroll-all-loops" from CFLAGS in Input/mpg123/Makefile and continued ("kill -CONT ...") the "make all-am"-processes again. emerge of xmms then finished sucessfully. xmms-1.2.8 runs perfectly. Yes, I checked the version No. in xmms's about-dialog :) /usr/bin/xmms*, /usr/lib/libxmms* and /usr/lib/xmms/*/* are completely new too (except the Iris-Plugin /usr/lib/xmms/Visualization/libiris.*). ------------------------------------------ By the way: libtool-1.4.3-r2 nasm-0.98.38 $ emerge info Portage 2.0.49-r9 (default-x86-1.4, gcc-3.3.1, glibc-2.3.2-r1, 2.4.20-gaming-r5) ================================================================= System uname: 2.4.20-gaming-r5 i586 AMD-K6(tm) 3D+ Processor Gentoo Base System version 1.4.3.10p1 distcc 2.10 i586-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=k6-3 -pipe -mmmx -m3dnow -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4" CHOST="i586-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config / sr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O3 -march=k6-3 -pipe -mmmx -m3dnow -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs sandbox distcc ccache" GENTOO_MIRRORS="http://crusoe" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://crusoe/gentoo-portage" USE="x86 apm avi crypt cups encode foomaticdb gif jpeg libg++ mad mikmod mpeg ncurses nls pdflib png quicktime spell truetype xml2 xmms xv zlib gdbm berkdb slang readline arts tetex svga tcltk java sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis qt kde motif opengl X gtk -gnome -oss alsa mmx 3dnow" $ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 5 model : 9 model name : AMD-K6(tm) 3D+ Processor stepping : 1 cpu MHz : 400.927 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr mce cx8 pge mmx syscall 3dnow k6_mtrr bogomips : 799.53 regards, Jan
what if you removed march=k6-3 and then try again (with unroll loops) or, what if you try with march=k6 ?
Sorry, I should have mentioned. I tried *everything* even without any optimization or cpu-support (-march or -mcpu) it was allways the -funroll-all-loops what was causing the problems in layer3.c And I also tried without distcc. No Problems in other files with -funroll-all-loops btw..
Jan, so you did `CFLAGS="" CXXFLAGS="" emerge xmms` and it still errored out?
exactly
I wonder if this is a problem with gcc-3.3.1. Jan, do you have gcc 3.2.x installed? Canyou try switching to it ('gcc-config i686-pc-linux-gnu-3.2.1' or something similar) and try emerging xmms again with empty CXXFLAGS and CFLAGS.
> do you have gcc 3.2.x installed? no I haven't. But I had emerged xmms before (last year). Maybe there was gcc-3.2 in ~x86: The gcc-changelog (http://www.gentoo.org/cgi-bin/viewcvs.cgi/*checkout*/sys-devel/gcc/ChangeLog) says "gcc-3.3.1-r4 (28 Sep 2003) [...] marked this ~x86.". I can remember having emerged xmms successfully before that day. So xmms (at least some version currently marked ~x86 at that time (http://www.gentoo.org/cgi-bin/viewcvs.cgi/*checkout*/media-sound/xmms/ChangeLog)) emerged without problems. If you still want me to emerge gcc-3.2.3-r3 or so I could do so - just takes some hours on that K6-400 box :(
the thing is, I have 3.2.3-r3 and 3.3.2-r5 to play with, and it sounds to me like a compiler error because removing a compiler optimization makes it work on your version of gcc.. here's what happened to me when compileing 1.2.9_pre1 earlier today with gcc 3.2.3-r3: if /bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../xmms -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -D_REENTRANT -I/usr/X11R6/include -D I386_ASSEM -I../../intl -I../.. -march=pentium3 -mcpu=pentium3 -O3 -pipe -fomit-frame-pointer -falign-functions=4 -falign-jumps=4 -falign-loops=4 -Wall -Wpointer-arith -finline-functions -ffast -math -fomit-frame-pointer -funroll-all-loops -MT layer3.lo -MD -MP -MF ".deps/layer3.Tpo" \ -c -o layer3.lo `test -f 'layer3.c' || echo './'`layer3.c; \ then mv -f ".deps/layer3.Tpo" ".deps/layer3.Plo"; \ else rm -f ".deps/layer3.Tpo"; exit 1; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../xmms -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -D_REENTRANT -I/usr/X11R6/include -DI386_ASSEM -I../../intl -I../.. -march=p entium3 -mcpu=pentium3 -O3 -pipe -fomit-frame-pointer -falign-functions=4 -falign-jumps=4 -falign-loops=4 -Wall -Wpointer-arith -finline-functions -ffast-math -fomit-frame-pointer -funroll-all-loo ps -MT layer3.lo -MD -MP -MF .deps/layer3.Tpo -c layer3.c -fPIC -DPIC -o layer3.lo it succeeded, and -funroll-all-loops is in there... It's my guess that it's your compiler or one of your other CFLAGS is causing the problem in conjunction with -funroll-all-loops... so, could you please try emerging xmms-1.2.9_pre1 with your current CFLAGS, CXXFLAGS, and gcc version? If it fails, set your CFLAGS and CXXFLAGS to something "safe" like '-pipe -O2' and try again... if that fails, then I think you might want to consider updating gcc...
xmms-1.2.9_pre1 emerges now! Didn't touch my CFLAGS or CXXFLAGS: $ emerge info Gentoo Base System version 1.4.3.12 Portage 2.0.50_pre19 (default-x86-1.4, gcc-3.3.2, glibc-2.3.3_pre20040117-r0, 2.4.20-gaming-r5) ================================================================= System uname: 2.4.20-gaming-r5 i586 AMD-K6(tm) 3D+ Processor distcc 2.11.1 i586-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] Autoconf: sys-devel/autoconf-2.58 Automake: sys-devel/automake-1.7.8 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=k6-3 -pipe -mmmx -m3dnow -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4" CHOST="i586-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -march=k6-3 -pipe -mmmx -m3dnow -fforce-addr -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4" [...] thank you all!