The first problem, and what is usually referred to, is the binary C++/G++ issue. The general problem here is that C++ is not as mature and widely standardized a language as C, with various implementations differing on various things, in terms of binary compatibility. G++ (GCC's C++ compiler) has had several binary incompatible implementations over time, with the older ones less compatible with current "standards" than current implementations. Pretty much everyone including the G++ developers themselves agree that the former implementations weren't correct, so they've changed them, in large part to be more "correct", as time has passed.

gccのバージョン違いによる、バイナリレベルの互換性(主にC++)に関する記述。よくまとまっている。