I Continued working on the Code::Block PND, waiting for the next stable release of Code::Blocks.
I wanted to upgrade the compiler to ... a newer one.
And, I only realize now: what a task !
So I get the sources of the latest (stable) GCC : 4.7.2. tar, ./configure... oh, missing dependencies... GMP, MPFR and MPC... Ok, not a big deal.
a few hours later (all takes times on the pandora)... ./configure again
and then make
..
failed
ok, messing with with options of ./configure
make
failed
..
many attemps latter, I hit a wall: ARM blabla trucate blabla... After a little google, well, ARM has some limitations, and cannot do certain jump (I'm not fluent in ARM assembler) longer than 32Mo (limit is 24bit, like 68000 iirc)... Need to upgrade the linker.
Hum... Liker is part of Binutils package.
So, let's jump from 1.18 to the latest.. 1.23.1
Ok, get
tar
./configure
make
works !
make install
So far so good.
Back to gcc 4.7.2... just to realize that the linker doesn't work ! Some kind of "assertion failed"... and it failed.
Ok, I tried with Binutils 1.23... Same. Try with 1.19, works, but same error on GCC 4.7.2.
Binutils 1.22...
Well, there are many "assertion failed ... 11647 and 11667", but it (looks like it) works.
Back to GCC 4.7.2... to failed again, and again, and again.
So I decided to be less ambitious, and I took GCC 4.6.3.
I used --disable-multilib and only compiled c and c++, but this time it works !
So now, the CodeBlocks PND is running with GCC 4.6.3 and Binutils 1.22
There are many "assertion failed" when linking, but programs seem to be ok. I am not sure if it interferes or not with ./configure, so may be I will downgrade to 1.21 or 1.20 (or 1.19, I know this one works without failed assertions).
As a quick test, I recompile DeadBeef, with all optimization enabled ... but the "top" monitoring doesn't look better (it's not worse either). I still have 10% cpu for mp3 and 35% cpu for psf.