Several people have responded to my previous ARMv4T patch for the "Donut" branch of Android, and have provided excellent feedback.
I recently checked out the code again, and thought that it would be wise to do some rigorous testing of all native binaries on the Android filesystem.
Please find an updated (but still incomplete) patch for ARMv4T here.
I've thrown together a small script to disassemble and check binaries for invalid opcodes. You can find the output here.
The output shows which executables and shared libraries still have non-ARMv4T machine code, and currently only 103 of 160 components pass the test. Therefore, there is still quite a bit of work to be done. For the remaining 57 components that fail, the illegal (non-ARMv4T) opcodes are also revealed.
NB: Just in case you find diffs generated with 'repo diff' just as annoying as I do, you can use this utility to automate the patching process.
update-20091215: The build system is doing "ok", but its still not perfect. Independent of compile-time issues are, of course run-time issues. The most major issue is the subject of dynamic code generation and you can read some of my thoughts here. To address the issue, I will be working with the android-on-freerunner people. For any further discussion about this topic, I suggest you join the android-on-freerunner mailing list.