Bug 29017 - bison-1.875 fails to build with -march=k6{-2} and -funroll-loops
Bug#: 29017 Product:  Gentoo Linux Version: unspecified Platform: x86
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: brandy@gentoo.org Reported By: andrewbevitt@gmail.com
Component: Core system
URL: 
Summary: bison-1.875 fails to build with -march=k6{-2} and -funroll-loops
Keywords:  
Status Whiteboard: 
Opened: 2003-09-17 16:33 0000
Description:   Opened: 2003-09-17 16:33 0000
Im setting up a test machine at the moment on a K6-2, and have found with
sys-devel/bison-1.875 that certain compile time errors occur if CFLAGS contains
both -march=k6 (or k6-2) and -funroll-loops.

As this is a test machine I have GCC-3.2.3 and GCC-3.4CVS installed, this bug
occurs on 3.2.3, but not on 3.4, which is not preferable.

emerge info gives the following, im still in the process before emerge system
(so still in the chroot) but my compiler is 3.2.3-r2 or 3.4 depending.

!!! No gcc found. You probably need to 'source /etc/profile' to update
!!! the environment of this terminal and possibly other terminals also.

Portage 2.0.49-r4 (default-x86-1.4, [unavailable], glibc-2.3.2-r4, 2.6.0-test4-bk2)
=================================================================
System uname: 2.6.0-test4-bk2 i586 AMD-K6(tm) 3D processor
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=k6-2 -O2 -funroll-loops -pipe -fomit-frame-pointer -mfpmath=387"
CHOST="i586-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config
/usr/kde/2/share/config /usr/kde/3/share/config"
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d"
CXXFLAGS="-march=k6-2 -O2 -funroll-loops -pipe -fomit-frame-pointer -mfpmath=387"
DISTDIR="/mnt/server/portage/distfiles"
FEATURES="ccache autoaddcvs sandbox fixpackages"
GENTOO_MIRRORS="http://gentoo.oregonstate.edu
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="java zlib -3dfx 3dnow aalib -acpi -afs alsa apache2 apm -arts -atlas avi
-berkdb -bonobo -canna -cdr -cjk crypt -cscope cups -curl -debig -dedicated dga
directfb -doc -dvb -dvd -emacs -encode -esd ethereal -ev6 -evo fbcon -firebird
flash foomaticdb -freetds gb gd -gdbm -ggi gif gnome gphoto2 -gpm gps gtk gtk2
-gtkhtml -guile -icc -icc-pgo -imap imlib -innodb -informix -ipv6 -jack jikes
-joystick jpeg junit kde -kerberos -krb4 -ladcca lcms -ldap -leim -libg++
-libgda libwww -lirc -mad -maildir -matrox -mbox -mcal -mikmod memlimit mmx
motif mozilla mpeg mpi -mule -mysql -nas ncurses -nhc98 -nls nocardbus nocd
-oci8 -odbc -oggvorbis -opengl -oss pam -pcmcia -pda ppds pdflib perl -plotutils
png -pnp -postgres -bindist -prelude python qt quicktime -readline -ruby samba
-sasl -scanner sdl slang -slp -snmp -socks5 -spell -sse ssl svga tcltk tcpd
tetex tiff truetype -trusted usb -videos -voodoo3 -wavelan -wmf wxwindows -X
Xaw3d -xface -xinerama xml xml2 -xmms xv -zeo x86"

I tried some manual compilations to find what was causing the bug, here are the
results.

pluto src # if gcc -DHAVE_CONFIG_H -DPKGDATADIR=\"/usr/share/bison\"
-DLOCALEDIR=\"/usr/share/locale\" -I. -I. -I.. -I.. -I../lib     -march=k6-2 -O2
-funroll-loops -pipe -fomit-frame-pointer -mfpmath=387 -MT reduce.o -MD -MP -MF
".deps/reduce.Tpo"   -c -o reduce.o `test -f 'reduce.c' || echo './'`reduce.c;
then mv ".deps/reduce.Tpo" ".deps/reduce.Po"; else rm -f ".deps/reduce.Tpo";
exit 1; fi
{standard input}: Assembler messages:
{standard input}:1208: Error: value of ffffffffffffff7e too large for field of 1
bytes at 0000000000000d0b
exit

Note: the -funroll-loops and -march=k6-2 above

pluto src # if gcc -DHAVE_CONFIG_H -DPKGDATADIR=\"/usr/share/bison\"
-DLOCALEDIR=\"/usr/share/locale\" -I. -I. -I.. -I.. -I../lib     -march=k6-2 -O2
-pipe -fomit-frame-pointer -mfpmath=387 -MT reduce.o -MD -MP -MF
".deps/reduce.Tpo"   -c -o reduce.o `test -f 'reduce.c' || echo './'`reduce.c;
then mv ".deps/reduce.Tpo" ".deps/reduce.Po"; else rm -f ".deps/reduce.Tpo";
exit 1; fi

Succeeded.

pluto src # if gcc -DHAVE_CONFIG_H -DPKGDATADIR=\"/usr/share/bison\"
-DLOCALEDIR=\"/usr/share/locale\" -I. -I. -I.. -I.. -I../lib     -march=i586 -O2
-funroll-loops -pipe -fomit-frame-pointer -mfpmath=387 -MT reduce.o -MD -MP -MF
".deps/reduce.Tpo"   -c -o reduce.o `test -f 'reduce.c' || echo './'`reduce.c;
then mv ".deps/reduce.Tpo" ".deps/reduce.Po"; else rm -f ".deps/reduce.Tpo";
exit 1; fi

Succeeded.

Reproducible: Always
Steps to Reproduce:
1. emerge bison with CFLAGS="-march=k6-2 -funroll-loops" watch it fail.
2. emerge bison with CFLAGS="-march=i586 -funroll-loops" will compile.

------- Comment #1 From hmk 2003-12-12 17:54:18 0000 -------
*** Bug 35177 has been marked as a duplicate of this bug. ***

------- Comment #2 From Aron Griffis (RETIRED) 2004-02-04 18:45:56 0000 -------
All fixed, thanks!  Please reopen this bug if you still encounter the problem
after a sync.