Yes, -static will normally require that libstdc++.a exist, though not all compilers (or versions) use the same name. The C++ RTLs aren't supposed to be "noticed" by the user in the sense of what their names are: the C++ compiler is supposed to handle everything related to its own RTL internally from compilation all the way through linking.
I don't have a problem creating static binaries with g++ in test situations. The main problem is it will greatly increase the size of your binary, usually to at least 1MB. Also, run-time exceptions won't propagate properly, but that only really matters if you're also using exception code.
PS If you use g++, type whereis libstdc++ and see if libstdc++.a shows up.
Last edited by ta0kira; 08-14-2008 at 04:15 PM.