
Don't know if you meant to use it, but gcc-4.1 is still really betacurtis119 wrote:I got a brand new laptop, compaq evo n610c, so I figured now would be a good time to try out gcc4. I started two days ago and used the most recent version, gcc-4.1.0-beta20051105.

I meant to use it. I figured since I was going to do a fresh install anyway I may as well go for it and see what I could break.Halcy0n wrote:Don't know if you meant to use it, but gcc-4.1 is still really betacurtis119 wrote:I got a brand new laptop, compaq evo n610c, so I figured now would be a good time to try out gcc4. I started two days ago and used the most recent version, gcc-4.1.0-beta20051105.gcc-4.0.2-r1 should be more sane. I haven't had time to look into the groff issue yet, but I know about it.
The kernel was the first thing I compiled after I emerged gcc4 (and yes, my symlink is good) so it wasn't that.wrc1944 wrote:curtis199,
svgalib has to have the /usr/src linux symlink pointing to the current running kernel, in case your's isn't.

This is due to a change in gcc handling of c++ code, it now, as gcc page states, rejects ARM style friend injection.curtis119 wrote:I finally finished my emerge gnome. Everything compiled cleanly except the following packages (I had to switch to gcc3.3.6 to get them to compile).
groff
opensp
aspell
svgalib
poppler
This is with binutils-2.16.91.0.3 and gcc-4.1.0_beta20051105. I already know that the binutils is the reason that svgalib wouldn't compile.
Code: Select all
bool NroffFilter::process_char (FilterChar::Chr c);
Code: Select all
bool process_char (FilterChar::Chr c);

I did a fresh install with 4.1.0-20051112. Look at my posts above.wrc1944 wrote:Hmmmmmm. nmbrthry's tests seem somewhat less than encouraging for any performance improvements, but I guess that will eventually come up with further tuning. I'm running gcc-4.02 for a few days now with no problems. I just synced and saw that gcc-4.1.0_beta20051112 is in portage- has anyone updated and have any feedback before I try it out?
4.0.2 is pretty reliable so far for me, at least on this test box that's just a generic kde desktop.
I'm reemerging -e world after upgrade to 4.1_beta20051112 and rebuilding the toolchain. Now it would be time to push it a little further, so i enabled vectorization in CFLAGS. 20051105 built xorg was running normally from what i can say, in a previous post i already stated (somehow clumsy) the build of system with 20051105, but most had been already found out..oh, well..wrc1944 wrote:curtis119,
I reread your posts above, and unless I just missed it, you only mention gcc-4.1.0_beta20051105. I was assuming beta20051112 had made a little more progress, so before I tried updating up from 4.0.2, I thought I'd ask those using 4.1 what their experience was. The gcc website is currently unavailable, and a google seach for gcc-4.1.0_beta20051112 turned up nothing.
nmbrthry,
Thanks for the clarification on your tests.
As i already stated, it is kind of cruicial, as many other packages use the deprecated syntax too..wrc1944 wrote: Is it a good idea to leave in -ffriend-injection for another emerge -e system and emerge -e world?
http://setiathome.berkeley.edu/forum_th ... p?id=21239I have a vested interest in finding out. During my forays with GCC-4.1, I
found and submitted two bug reports that got fixed with breathtaking speed.
So my hope is that the current CVS version of GCC-4.1 is better than 4.0.x.
I'll wait to hear from you all. If you're really aggressive about this, you
should know that GCC-4.1 has a new option, similar to ICC's -ipo, which
allows you to compile all source files on one line and get much better
optimization between modules. The options, which are used together, are
-fwhole-program and -combine (might be off a bit) It would be cool if you
could try that, because -ipo adds a lot of performance to ICC-compiled code.
But, of course, you'd have to completely redo the Makefiles.
____________
Harold Naparst
-------------------------------------------------------------------------
Posted 20 Oct 2005 6:57:53 UTC - in response to Message ID 180113.
Right. Well, it is confusing with all the options, so I'm glad we
have all these people working on it. I'd be interested to know if
you all think GCC-4.1 is faster than GCC-4.0.x and if there is any
advantage at all to ICC/IPP once the dust settles, or if it only
exists for P4. Good job, guys!!
-------------------------------------------------------------------------------
Well, I'm certainly no expert here, but it would seem to me that you are able
to get good (fast) results with ICC relatively quickly and with relatively
few compiler optimizations. GCC, on the other hand, is extremely dependent
upon optimization flags - the right set of flags can make a huge difference
to performance. Equally, some flags are actually detrimental to performance
even though you may think they would be beneficial. Bottom line is that a lot
of benchtesting against a reference WU is required to find optimal settings.
The speed improvements gained fron going from GCC-3.x.x to GCC-4.x.x were
large relative to improvements between point releases. I've not tried GCC-4.1
yet but I would guess it may provide relatively small speed improvements.
Ned
-------------------------------------------------
-combine are available in gcc4 already but I haven't tried it myself yet. -fwhole-program seems really intersting too. I'll do some benchmarks on -combine and get back to you later.wrc1944 wrote:Tiger683- Thanks for the info! Guess I'll forge ahead with -e world.
In my googling for more gcc-4.1 info, I ran across a thread where some setiathome people were discussing 4.1, and the gcc-4.1 flags -fwhole-program and -combine, as related to ICC and GCC performance. Lots of things I've read over the last 2 years seem to concur that GCC performance still significantly lags behind ICC compiled code, and was one reason Linux performance seemed to lag behind windows on the same hardware. My own experience with windows vs. Linux using many versions of each on many boxes seems to confirm this pretty convincingly, though lately Linux does seem to be closing the gap.
Has anyone had experience with, or is planning to try these flags? Seems very interesting to me. Here's a few excerpts, and a link to the rather long thread (if anyone's interested).
Code: Select all
>> md5 files ;-) files/3.3.3/gcc-3.3.3-uclibc-add-ssp.patch
>>> md5 files ;-) files/3.3.3/gcc-uclibc-3.3-loop.patch
>>> md5 files ;-) files/3.3.3/gcc333-debian-arm-ldm.patch
>>> md5 files ;-) files/3.3.3/gcc333-debian-arm-getoff.patch
>>> md5 files ;-) files/3.3.3/gcc333_pre20040408-stack-size.patch
>>> md5 files ;-) files/3.4.3/libssp.patch
>>> md5 files ;-) files/3.4.3/gcc-3.4.3-cross-compile.patch
>>> md5 files ;-) files/3.4.3/libffi-nogcj-lib-path-fix.patch
>>> md5 files ;-) files/3.4.3/libffi-without-libgcj.patch
>>> md5 files ;-) files/3.3.4/libffi-without-libgcj.patch
>>> md5 files ;-) files/3.4.4/gcc-3.4.4-cross-compile.patch
>>> md5 files ;-) files/3.4.4/gcc-3.4.4-softfloat.patch
>>> md5 files ;-) files/3.3.5/gcc-3.3.5-ffecom_gfrt_basictype-prototype.patch
>>> md5 files ;-) files/3.3.5/gcc-3.3.5-no-COPYING-cross-compile.patch
>>> md5 files ;-) files/3.3.6/gcc-3.3.6-cross-compile.patch
>>> md5 src_uri ;-) gcc-4.1-20051112.tar.bz2
!!! ERROR: sys-devel/gcc-4.1.0_beta20051112 failed.
!!! Function pkg_setup, Line 49, Exitcode 0
!!! Please `export I_PROMISE_TO_SUPPLY_PATCHES_WITH_BUGS=1` or define it in your make.conf if you want to use this ebuild. This is to try and cut down on people filing bugs for a compiler we do not currently support.
!!! If you need support, post the topmost build error, NOT this status message.
Done.Code: Select all
Portage 2.0.53_rc7 (default-linux/x86/2005.1, gcc-4.0.2, glibc-2.3.6-r0, 2.6.14-nitro2 i686)
=================================================================
System uname: 2.6.14-nitro2 i686 Intel(R) Celeron(R) CPU 2.40GHz
Gentoo Base System version 1.12.0_pre10
ccache version 2.4 [enabled]
dev-lang/python: 2.3.5, 2.4.2
sys-apps/sandbox: 1.2.13
sys-devel/autoconf: 2.13, 2.59-r7
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils: 2.16.1
sys-devel/libtool: 1.5.20-r1
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/lib/X11/xkb /usr/li b/mozilla/defaults/pref /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks sandbox sfperms strict userpriv"
GENTOO_MIRRORS="http://gentoo.osuosl.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="x86 X alsa apm arts audiofile avi berkdb bitmap-fonts bzip2 crypt cups eds emboss encode esd exif ex pat fam foomaticdb fortran gdbm gif glut gmp gnome gpm gstreamer gtk gtk2 idn imlib ipv6 java jpeg kde lc ms libg++ libwww mad mikmod mng motif mozilla mp3 mpeg ncurses nls ntpl ntplonly ogg oggvorbis opengl oss pam pcre pdflib perl png python qt quicktime readline sdl spell ssl tcpd tiff truetype truetype-fonts ty pe1-fonts udev usb vorbis xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS