The gcc maintainers broke binary compatibility between gcc versions 2.7.0 and 2.7.1. Programs compiled using gcc 2.7.0 or earlier will not work with a libst.so compiled with gcc 2.7.1 or later, and vice versa. If you do it, you will not get an error, the program will just behave badly. (The problem is that passing FALSE as an argument, or returning FALSE, may be interpreted as TRUE by the receiving end.)
This is particularly serious on FreeBSD: FreeBSD 2.2/3.0 is not completely binary compatible with 2.1 because of it. In practice all Qt-using programs are affected.
Copyright 2008, Trolltech ASA