GCC 3.4.6
Posted: Sun Nov 26, 2006 2:13 pm
Hi guys. I've taken on the ambitious aim of bringing the Linux on PS2 situation up to speed. I realise that most of you are much more interested in Linuxless development on the PS2 but I also realise that a small part of that is down to the fact that the existing Linux software is so old - and that's what I'm trying to fix.
I'm a long time user of Gentoo Linux and that's the distro I'm using for this. It compiles all its packages from source, which makes it ideal. Earlier this year, I successfully built a base system using gcc 3.0.4 and uClibc 0.9.27. It included xorg 7.0 running on the ps2gsfb driver. There's life in the old black box yet. ;)
My more recent experiments have produced a working patch against Linux/MIPS 2.4.19 and an almost working patch against Linux/MIPS 2.4.20. I've got 2.4.33.3 to build and start but it kernel panics fairly quickly at the moment. ;) Previously the latest version available was an extremely heavily patched version of 2.4.17. We now have binutils 2.16.1 thanks to a fellow Gentoo user. I've also managed to get GCC 3.2.2 working on Linux - or at least it seems to be working okay so far. Previously 3.0.4 was the latest version available to Linux.
The reason I'm here is because I'd like to try and bring GCC further up to date. I'm not too bothered about GCC 4 since I understand that uClibc isn't quite ready for that but GCC 3.4.6 would be very nice. In particular, I need --sysroot support, otherwise I'll be forced to build everything on the PS2 itself, which isn't ideal as you know. I read that the MIPS backend had been rewritten in 3.3 but I figured I'd have a go myself anyway. I tackled the three hardest files first, mips.md, mips.h but then gave up shortly after starting mips.c.
The fact is I'm out of my depth here. I must confess that I'm not really much of a kernel hacker or a toolchain hacker and I don't know MIPS assembly or anything like that. My progress so far has primarily been focused around comparing the different patches and making changes based on intuition and quite a lot of luck. I never thought I'd even make it this far. But that's why I'm doing this, to learn about this stuff while doing something useful in the process. It's a pretty steep learning curve though and that's why I need your help.
Here's the patch I've come up with so far and the rest of the gcc 3.2.2 patch that I either haven't tried to merge yet or was unable to merge in the case of mips.md, mips.h and mips.c. It's those files I really need help with. I can probably figure the rest out myself.
http://gps2.aura-online.co.uk/patches/g ... -far.patch
http://gps2.aura-online.co.uk/patches/g ... vers.patch
So who's out there anyway? I know that MrHTFord and/or mrbrown had originally intended to reach 3.4 but I don't think they're around anymore? I saw a post that said blackdroid had looked at GCC 4. Help from anybody would be much appreciated. Cheers. :)
I'm a long time user of Gentoo Linux and that's the distro I'm using for this. It compiles all its packages from source, which makes it ideal. Earlier this year, I successfully built a base system using gcc 3.0.4 and uClibc 0.9.27. It included xorg 7.0 running on the ps2gsfb driver. There's life in the old black box yet. ;)
My more recent experiments have produced a working patch against Linux/MIPS 2.4.19 and an almost working patch against Linux/MIPS 2.4.20. I've got 2.4.33.3 to build and start but it kernel panics fairly quickly at the moment. ;) Previously the latest version available was an extremely heavily patched version of 2.4.17. We now have binutils 2.16.1 thanks to a fellow Gentoo user. I've also managed to get GCC 3.2.2 working on Linux - or at least it seems to be working okay so far. Previously 3.0.4 was the latest version available to Linux.
The reason I'm here is because I'd like to try and bring GCC further up to date. I'm not too bothered about GCC 4 since I understand that uClibc isn't quite ready for that but GCC 3.4.6 would be very nice. In particular, I need --sysroot support, otherwise I'll be forced to build everything on the PS2 itself, which isn't ideal as you know. I read that the MIPS backend had been rewritten in 3.3 but I figured I'd have a go myself anyway. I tackled the three hardest files first, mips.md, mips.h but then gave up shortly after starting mips.c.
The fact is I'm out of my depth here. I must confess that I'm not really much of a kernel hacker or a toolchain hacker and I don't know MIPS assembly or anything like that. My progress so far has primarily been focused around comparing the different patches and making changes based on intuition and quite a lot of luck. I never thought I'd even make it this far. But that's why I'm doing this, to learn about this stuff while doing something useful in the process. It's a pretty steep learning curve though and that's why I need your help.
Here's the patch I've come up with so far and the rest of the gcc 3.2.2 patch that I either haven't tried to merge yet or was unable to merge in the case of mips.md, mips.h and mips.c. It's those files I really need help with. I can probably figure the rest out myself.
http://gps2.aura-online.co.uk/patches/g ... -far.patch
http://gps2.aura-online.co.uk/patches/g ... vers.patch
So who's out there anyway? I know that MrHTFord and/or mrbrown had originally intended to reach 3.4 but I don't think they're around anymore? I saw a post that said blackdroid had looked at GCC 4. Help from anybody would be much appreciated. Cheers. :)