This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 3.3
On Wed, Jul 31, 2002 at 07:41:09AM +1000, Fergus Henderson wrote:
>
> P.S. I have a question of my own regarding symbol versioning. Suppose I
> have a C++ library `libfoo.so' that references libstdc++.so, and an
> application `bar' that references both libfoo.so and libstdc++.so, and
> suppose an ABI-breaking change is made to libstdc++. A new version of
> libstdc++ is installed; this has both the symbols for the new libstdc++
> ABI, and symbols compatible with the old libstdc++ ABI, marked with the
> old version number. So `bar' continues to work. Now, I try to compile
> an application `baz' that references both libfoo.so and libstdc++.so.
> `baz' uses the new version of the libstdc++.so ABI, but libfoo.so refers
> to the old version. To make `baz' work, I'd need to upgrade libfoo.so
> to a version that uses the new version of the libstdc++.so ABI. But that
> would break `bar', wouldn't it? (Or am I just hopelessly confused about
Why will the new libfoo.so break bar if it is binary compatible with
the old libfoo.so?
H.J.