Mark Allums schrieb:
For the fun of it, I created a cross-compiler based on a developer snapshot of gcc. It is a successor to 4.3.3, essentially an early 4.4.0. I am aware that versions other than 4.0.3 don't work well.

I thought you might like a bit of a report.

The development environment is hosted on a Debian Sid system.

I used the 4.3.3+something gcc to create a portal-player ARM firmware for the Sansa e200.

It is based on version r20089-090223 of Rockbox

I got the source for GCC through svn from an official GNU mirror. I did not record the release version. It is a quite recent snapshot, though.

I used the Rockbox wiki's instructions for a manual build as a checklist.

I did not apply any patches.

I used the Debian source for binutils, v. 2.19.1, but did not apply any patches.

I built gdb v. 6.8, but I haven't yet tried to use it.

The resulting firmware works very well, except it crashes when playing certain music files.


o The voice menu work perfectly
o The keyclicks work perfectly
o It can play .ogg Vorbis well.
o It can play .wav well.
o It crashes trying to play .mp3 with the error message "Undefined
  instruction at 40018920 (0)"
o It crashes trying to play .wma with a similar error message.
o It plays .m4a Apple-encoded songs very well
o The voice recorder works well.
o The radio works, and you can record from FM
o FreeDoom works including sound
o The screen capture did not behave as expected.  Not sure if it is the
  firmware or user error.
o It plays FLAC lossless perfectly


Hope this report helps.  What needs to be done to fix the problem?

Mark Allums

I've tried building Rockbox using gcc-4.3.2 and binutils-2.19.1. I have applied the Rockbox patches. Actually, I just slightly hacked rockboxdev.sh to make it work. I used gcc-4.3.3 and binutils-2.19.1 (both from the ubuntu jaunty packages repo) to compile the arm compilers.

My experience doesn't differ much, though.

*I get a undefined instruction too with mp3. It turned out, that mp3 on cop doesn't quite work with that gcc (the undefined instruction is in math_synth_thread. Mpegplayer worked though (with or without mp3 on cop). Mp3 works with COP capabilities removed. Ogg works fine, AAC crashes with data abort (they're Nero encoded). I haven't tried other codecs.
*The binsize is about 5k higher.
*The |<< button on my fuze does hardly work.
*gcc-4.3 apparently needs extra libs, that 4.0.3 doesn't need (not sure if they're even interesting for Rockbox), which I needed to compile and install before. *screendump doesn't work in the WPS, the upper parts of the bmp show the main menu.

The rest worked OK, I'd say. I have not made a performance comparison (yet).

I have build a m68k compiler too (and I could probably build a sh one too), if someone is interested to try a build on such a target.

Reply via email to