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.