When firefox is compiled with gcc 3.4 and -fweb in CFLAGS it crashes (no error msgs, just exits to desktop) when selecting radio boxes (eg in forum polls). I suggest filtering out -fweb in the ebuild, unless this is cannot be confirmed by anyone else Reproducible: Always Steps to Reproduce:
Nobody else has verified this for nigh on two weeks now, and it has always worked for me. What's the output of "emerge info"?
i had -O3 -fweb in my cflags, afaics the ebuild filters -O3 to -O2, since -fweb is enabled as part of -O3 it should work, but I was keeping it in manually by setting -fweb explicetly. Fixed now, thanks.
I've confirmed it on my system. Aurora root # emerge info Portage 2.0.50-r8 (default-x86-2004.0, gcc-3.4.0, glibc-2.3.3.20040420-r0, 2.6.5-gentoo-r1) ================================================================= System uname: 2.6.5-gentoo-r1 i686 Intel(R) Pentium(R) III Mobile CPU 1000MHz Gentoo Base System version 1.4.16 distcc 2.14 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer -mfpmath=387,sse -ftracer -fforce-addr -fweb" CHOST="i686-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.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer -mfpmath=387,sse -ftracer -fforce-addr -fweb" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo http://mirror.tucdemonic.org/gentoo/ ftp://gentoo.noved.org/ ftp://gentoo.ccccom.com ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="X aalib alsa apm arts avi berkdb cdr crypt cups dvd encode esd fbdev flac foomaticdb gdbm gif gnome gpm gtk gtk2 imlib java jpeg kde libg++ libwww mad mikmod mmx motif mpeg mysql ncurses nls nptl oggvorbis opengl oss pam pcmcia pdflib perl png python qt quicktime radeon readline samba scanner sdl slang spell sse ssl svga tcltk tcpd truetype video_cards_radeon x86 xml2 xmms xv zlib" Using Firefox 0.9 I'll recompile without -fweb and see what happens.
Ok, I've confirmed that without -fweb firefox-0.9 is working correctly.
Is this still an issue? In either 0.9.3, 0.9.3-r1 or 1.0_pre?
It happened to me with firefox-0.10_pre-r2. Portage 2.0.51-r2 (default-x86-2004.2, gcc-3.3.4, glibc-2.3.4.20040808-r1, 2.6.9 i686) ================================================================= System uname: 2.6.9 i686 Intel(R) Pentium(R) M processor 1500MHz Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r5 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.14.90.0.8-r1 Headers: sys-kernel/linux-headers-2.4.21-r1 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=pentium3 -msse2 -fomit-frame-pointer -pipe" CHOST="i386-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=pentium3 -msse2 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distlocks sandbox" GENTOO_MIRRORS="http://gentoo.llarian.net/ ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://gentoo.eliteitminds.com" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X alsa apm arts avi berkdb bitmap-fonts cdr cdrom crypt cups directfb dvd dvx4linux encode f77 fbdev foomaticdb gdbm gif gpm gtk2 imlib jpeg kde libg++ libwww live mad mikmod motif mpeg nas ncurses network nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline rtc samba sdl slang spell sse ssl svga tcpd truetype usb x86 xml2 xmms xprint xv zlib"
What is -fweb? I don't see it anywhere in gcc documentation. At this point the mozilla ebuilds would filter out -fweb via strip-flags, so I'm assuming this bug can be closed.
@Aron: Just to clarify, it is documented in gcc-3.4. At least, it certainly is in gcc-3.4.3: http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Optimize-Options.html#Optimize-Options) It's described as thus: <quote>Constructs webs as commonly used for register allocation purposes and assign each web individual pseudo register. This allows the register allocation pass to operate on pseudos directly, but also strengthens several other optimization passes, such as CSE, loop optimizer and trivial dead code remover. It can, however, make debugging impossible, since variables will no longer stay in a
@Aron: Just to clarify, it is documented in gcc-3.4. At least, it certainly is in gcc-3.4.3: http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Optimize-Options.html#Optimize-Options) It's described as thus: <quote>Constructs webs as commonly used for register allocation purposes and assign each web individual pseudo register. This allows the register allocation pass to operate on pseudos directly, but also strengthens several other optimization passes, such as CSE, loop optimizer and trivial dead code remover. It can, however, make debugging impossible, since variables will no longer stay in a home register.</quote> I've heard that it's a rather effective form of optimisation but it can cause regressions here and there, as this bug has evidenced. I'm going to try and reproduce the problem myself (firefox is dog slow on my machine and needs all the help it can get ;). If this is still a problem, then I may well file it upstream. As has been pointed out earlier, it's enabled in the -O3 profile (i.e. it ought not to be considered an "esoteric" option) and if it's breaking things then people probably ought to be fixing their code (hmm, hope springs eternal :). Such sentiments appear to have been expressed on the gcc mailing list although it's not something I've looked at in great detail.