Problem linking a 3.2 program with older (< 3.2) libs

John Love-Jensen eljay@adobe.com
Tue Jan 21 19:35:00 GMT 2003


Hi Matthew,

The C++ ABI changed between GCC 2.95 and GCC 3.x.

(It also changed between the maverick Red Hat 2.96 release and GCC 2.95, and
RH 2.96 and GCC 3.x.)

The C ABI is the same between GCC 2.95, RH 2.96, and GCC 3.x.

Since you are obviously trying to link C++ code across versions, you'll find
the challenge to be icky.

What you'll have to do is take a RH 2.96 compiler (which I assume is the one
that your old code is using) and write a C thunk layer.

Then you'll have to take your GCC 3.2 compiler, and make it's C thunk layer.

The C ABI thunk layer acts as the bridge between RH 2.96 and GCC 3.2.

Then you'll have the strong C barrier that will allow you to marry your code
together.

Much preferable, IMO, is to get a library built with GCC 3.2.  But that may
not be an option for you.

Sincerely,
--Eljay



More information about the Gcc-help mailing list