Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 89685

Summary: sys-devel/gcc-3.3.5.20050130-r1 (hardened) generates bad code from g++ (e.g., qt/qmake fails): Bus error
Product: Gentoo Linux Reporter: Ferris McCormick (RETIRED) <fmccor>
Component: [OLD] Core systemAssignee: Gentoo Toolchain Maintainers <toolchain>
Status: RESOLVED NEEDINFO    
Severity: major CC: solar, sparc
Priority: High    
Version: 2005.0   
Hardware: Sparc   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Ferris McCormick (RETIRED) gentoo-dev 2005-04-19 10:33:20 UTC
sys-devel/gcc-3.3.5.20050130-r1, current stable version for sparc, when built with USE=hardened generates incorrect code from g++ in some circumstances.  For example, if it is used to attempt a rebuild of x11-libs/qt (upgrade to 3.3.4-r3), the version of qmake it generates always gets a Bus error.

This is definitely a regression.  (1) g++ (gcc-3.3.5.20050130-r1, USE='-hardened') builds a perfectly good qmake, and g++ (sys-devel/gcc-3.3.5-r1 USE='hardened') built a perfectly good qmake.

To be fair, I think that g++-3.3.5-20050130-r1 itself is bad, and USE='[+-]hardened' just moves the problem around, and I think that the STL is implicated.  I base this on failures on a (non-gentoo) program which is believed to work, relies on STL, and exhibits "heisenbug"-like symptoms (and also requires access to net-analyzer/ns source tree, and so it is not practical to include it with this report.)

I am giving this pretty high priority because (1) it is a regression and (2) if g++ is generating bad code consistently, but it usually appears to work, that would be very bad indeed.  Of course, if hardened is implicated, I am the only user affected (so far as I know), but that doesn't abate the potential harm.

More information: (1) Failure is consistent across systems.  It's not a single system failure. A fresh rebuild for gcc-3.3.5.20050130-r1(hardened) still fails.
(2) In interest of completeness, Here's the configuration from one of the failing systems (configured for failure; i.e., showing USE=hardened among others, but after having built a compiler which can rebuild qmake and hence qt):
==================================================================
==================================================================
Portage 2.0.51.19 (default-linux/sparc/sparc64/2005.0, gcc-3.3.5-20050130, glibc-2.3.3.20040420-r2, 2.4.27-sparc-r1 sparc64)
=================================================================
System uname: 2.4.27-sparc-r1 sparc64 sun4u
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.2.3-r5,dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb 11 2005, 18:06:54)]
distcc 2.16 sparc-unknown-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.3 [disabled]
dev-lang/python:     2.2.3-r5, 2.3.4-r1
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.8.5-r3, 1.5, 1.6.3, 1.7.9-r1, 1.4_p6, 1.9.4
sys-devel/binutils:  2.15.92.0.2-r7
sys-devel/libtool:   1.5.14
virtual/os-headers:  2.4.19-r1, 2.4.23
ACCEPT_KEYWORDS="sparc"
AUTOCLEAN="yes"
CFLAGS="-mcpu=ultrasparc -mtune=ultrasparc -O2 -pipe"
CHOST="sparc-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS="-mcpu=ultrasparc -mtune=ultrasparc -O2 -pipe -Wno-deprecated"
DISTDIR="/cache/portage/distfiles"
FEATURES="autoaddcvs autoconfig cvs distcc distlocks sandbox strict"
GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo http://mirror.datapipe.net/gentoo http://ftp.easynet.nl/mirror/gentoo/ ftp://gentoo.agsn.ca/"
MAKEOPTS="-j4"
PKGDIR="/cache/portage/packages"
PORTAGE_TMPDIR="/homes/home1/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="sparc X arts avi berkdb bitmap-fonts crypt cscope cups curl dillo dlloader encode fam fbcon foomaticdb fortran gcc64 gdbm gif gpm graphviz gtk gtk2 hardened imagemagick imlib java jpeg junit libwww mad mikmod motif mozilla mpeg mpi mysql ncurses nls ogg opengl oss pam pdflib perl png python qt readline ruby ruby18 slang spell sqlite src ssl stroke tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts vorbis xml2 xmms xv zlib"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
===================================================================
Comment 1 Ferris McCormick (RETIRED) gentoo-dev 2005-04-19 15:40:18 UTC
Failure confirmed on the system shown below.  This system is completely separate from the ones from which I reported the problem, and (as you see) is kernel-2.6.x instead of 2.4.x.
Linux fer-de-lance 2.6.6 #7 SMP Fri May 28 23:28:55 UTC 2004 sparc64 sun4u TI UltraSparc II  (BlackBird) GNU/Linux
(U60-SMP(2x300))
Comment 2 Ferris McCormick (RETIRED) gentoo-dev 2005-06-16 12:49:27 UTC
Also with g++-3.3.6(hardened), qmake always gets a Bus error. 
gcc-3.3.6(hardened) seems fine, but the g++ problem continues to block hardened
testing for sparc.
Comment 3 Mark Loeser (RETIRED) gentoo-dev 2005-12-11 19:41:11 UTC
Ferris, let us know if this is still an issue with gcc-3.4.4-r1
Comment 4 solar (RETIRED) gentoo-dev 2005-12-12 04:39:59 UTC
It still fails. newer gcc-3.4.4 and qt-4.x bug #115237