The main paint-points are the glibc for C, and GCC for C++.
Since I generally don't care as much about C++, given that for simple cases, linking to the STL statically works out well enough, that only leaves matching the glibc version, which is not as problematic, because it's old, not not *ridiculously* old (well, frankly, it *is* kind of ridiculous, but it gets ridiculous-er as far as building goes if you go back further ;p).
And when you *do* care about GCC (i.e., nickeltc), we're *riiiiiight* at the limit before stuff would get *really* messy (i.e., GCC 4.9), so it generally works out well enough.
(As in, I don't think I have anything significantly custom/hacky in place to handle the nickeltc target. But for C++, stuff is kindly starting to tell you to go get a real compiler w/ C++11 support for real nowadays, so, depending on what you want to build, matching the GCC version may actually be *counter*-productive).
Remember that I started all of this to target the Kindle on FW 2.x, and that runs... Linux 2.6.22 on glibc 2.5
. Good luck building that one ;p. (I cheat, because I couldn't, so I went w/ 2.9 and piles of hacks to avoid pulling newer symbols).