C++ standard library ABI

Jonathan Schilling jls at sco.com
Tue Jun 8 20:56:00 UTC 1999


During the meeting last week, there was some discussion about 
how hard it might be to specify a C++ standard library ABI,
and some opinions ventured that such a goal might be out of reach.

I presume the problem here is that even if all object layouts etc.
are specified by an ABI, differences in source-level implementation
of the standard library from one system to another will result in
incompatible class representations between library caller and
library implementation (i.e., the RRBC problem in another guise).

But what then is the ABI supposed to accomplish?  Is it that I can take 
my application executables and dynamic libraries from one system to
another (for any given source level of the application), and it
will work ... until my application calls the standard library?
That's not very realistic.

If I can't even move the executable representing this (dynamically-linked) 
program:

#include <string>
#include <iostream.h>

using namespace std;

int main() {
	string s = "hello std lib";
	cout << s << endl;
}

from one C++-ABI-conforming system to another, what will we have
accomplished?

Hopefully I have misunderstood something along the way....

Jonathan Schilling		SCO, Inc.		jls at sco.com




More information about the cxx-abi-dev mailing list