@GM: The easiest way is to simply use more or less the same TC as Amazon used on the K2/K3 (GCC 4.1/glibc 2.5/K 2.6.22 IIRC), and try to avoid ABI/API mismatches in bundled 3rd-party libs. If this is unavoidable, statically link *only* the 3rd-party libs. (Same thing if the 3rd-party lib is not bundled with the Kindle, or just ship the shared libs with your app, and tweak LD_LIBRARY_PATH at runtime).
If you're adventurous like me, you *can* use a newer GCC/glibc pair (I'm using Linaro GCC 4.7/glibc 2.9 for my k2/k3 tc), but know that you might have to tweak some C stuff/trick autotools to avoid pulling stuff from newer glibc, and that C++ stuff will probably be a no-go unless you're willing/can statically link libstdc++. (And you'll have to kill gcc's ssp and glibc's fortify support, which is usually a simple matter of correct CPP/CXX/CFLAGS).
If you're targeting the K4/K5, it's way, way neater, since the TC Amazon used is not so freaking ancient (don't remember exactly, but I'd say GCC 4.4/eglibc 2.12/K 2.6.31).
That's what I've been doing so far, without too much trouble
.
And remember, readelf is your friend ^^.