



Code: Select all
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -O2 -march=athlon-tbird -I/usr/X11R6/include -DSHAPE -I/usr/X11R6/include -I/usr/include/freetype2 -c -o Menu.o `test -f Menu.cc || echo './'`Menu.cc
Menu.cc: In member function `void FbTk::Menu::update(int)':
Menu.cc:496: error: no matching function for call to `FbTk::FbPixmap::FbPixmap(FbTk::FbPixmap&)'




Code: Select all
Total Time: 1 hours 11 minutes 7.0 seconds (4267 seconds)Code: Select all
Total Time: 1 hours 5 minutes 37.0 seconds (3937 seconds)Code: Select all
Total Time: 1 hours 6 minutes 16.0 seconds (3976 seconds)
From this page on gcc's site.When -pedantic is used, G++ now issues errors about spurious semicolons. For example,
namespace N {}; // Invalid semicolon.
void f() {}; // Invalid semicolon.

Can you benchmark again using -ftracer? This is by far and away the best available CFLAGS option I've found for most pieces of code.NeighborhoodGullwings wrote:gcc 3.4 (snapshot 2004-01-07)CFLAGS used in both compiles were "-O3 -march=athlon-tbird -fomit-frame-pointer -fmove-all-movables -frename-registers -finline-functions -ffast-math -funroll-loops -fexpensive-optimizations -malign-double -foptimize-sibling-calls -minline-all-stringops -Wno-multichar"Code: Select all
Total Time: 1 hours 5 minutes 37.0 seconds (3937 seconds)
Code: Select all
CFLAGS="-O3 -march=athlon-xp -msse -mmmx -m3dnow -momit-leaf-frame-pointer -fomit-frame-pointer -funroll-loops -ftracer -ffast-math -fprefetch-loop-arrays -freduce-all-givs -finline-limit=600 -mfpmath=387 -pipe"
Sure:robmoss2k wrote:Can you benchmark again using -ftracer?
Code: Select all
Total Time: 1 hours 2 minutes 41.0 seconds (3761 seconds)
Glad it worked! That's a *massive* reduction.NeighborhoodGullwings wrote:Sure:robmoss2k wrote:Can you benchmark again using -ftracer?
Very nice.Code: Select all
Total Time: 1 hours 2 minutes 41.0 seconds (3761 seconds)

Which kernel version? I got a 2.4 kernel to compile without any problems by just adding -fno-unit-at-a-time to the kernel's Makefile (on 2.4.25_pre4 this is on line 94 but there may be other places you could add it that would work). Then you're ready to gorobmoss2k wrote:To whoever got the kernel to compile with GCC 3.4 - could you please tell me exactly how you managed it? I can't get any kernel to compile. Having serious difficulties, as I kinda need one of those. However, I should report that I've managed to do a Stage 1 install using GCC 3.4 from the ground up - I may be the first to do this- and am only struggling a little bit now. Bloody kernel...

I've tried with a few - gentoo-sources, gentoo-dev-sources, development-sources and mm-sources. All terminate with this error:NeighborhoodGullwings wrote:Which kernel version? I got a 2.4 kernel to compile without any problems by just adding -fno-unit-at-a-time to the kernel's Makefile (on 2.4.25_pre4 this is on line 94 but there may be other places you could add it that would work). Then you're ready to gorobmoss2k wrote:To whoever got the kernel to compile with GCC 3.4 - could you please tell me exactly how you managed it? I can't get any kernel to compile. Having serious difficulties, as I kinda need one of those. However, I should report that I've managed to do a Stage 1 install using GCC 3.4 from the ground up - I may be the first to do this- and am only struggling a little bit now. Bloody kernel...
Similar solution for 2.6 I would guess but I haven't tried it myself. I think someone else here has though, maybe fca has. Read the other pages.
How did you do an emerge system with 3.4? Did you have to edit the portage profile or anything?


I've successfully installed the 2.4.25-pre4 kernel using the -fno-unit-at-a-time trick, so I have a kernel. And it worksfca wrote:Have you tried my patch?
http://fca.shacknet.nu/files/gcc34nounitatatime.patch
I got your error, before I figured out how to add -fno-unit-at-a-time in the kernel makefile. After this patch (use patch -p1 -i /path/to/patch in the kernel src directory to patch) kernel 2.6.x compiles perfectly (NeighborhoodGullwings has compiled 2.4.x succesfully with something like this)
I can't be really active with this for the next few days though, so probably no updates from me.
edit: spent too long writing my post

Expirmental, bigger programs, but somewhat faster (about 5% in my benchmark).-fsched2-use-superblocks
When scheduling after register allocation, do use superblock scheduling algorithm. Superblock scheduling allows motion across basic block boundaries resulting on faster schedules. This option is experimental, as not all machine descriptions used by GCC model the CPU closely enough to avoid unreliable results from the algorithm.
This only makes sense when scheduling after register allocation, i.e. with -fschedule-insns2 or at -O2 or higher.
-fsched2-use-traces
Use -fsched2-use-superblocks algorithm when scheduling after register allocation and additionally perform code duplication in order to increase the size of superblocks using tracer pass. See -ftracer for details on trace formation.
This mode should produce faster but significantly longer programs. Also without -fbranch-probabilities the traces constructed may not match the reality and hurt the performance. This only makes sense when scheduling after register allocation, i.e. with -fschedule-insns2 or at -O2 or higher.
