runtime mangling

Jim Dehnert dehnert at baalbek.engr.sgi.com
Thu Mar 9 21:26:30 UTC 2000


> Date: Thu, 9 Mar 2000 13:02:35 -0800
> From: Jason Merrill <jason at cygnus.com>
> 
> Which of the runtime entry points specified by the ABI are extern "C", and
> which are extern "C++"?  I've been assuming that most had "C" linkage, but
> Nathan seems to have assumed otherwise in implementing the new RTTI stuff,
> and we ought to specify...

You're right, we need to.  I was making Nathan's assumption.
Specifically, with the exception of longjmp_unwind, which we expect
users to call from C, I was thinking in terms of using C++ linkage.

So, we need to identify the underlying principle.  Mine was:

	All runtime library entrypoints are extern "C++" except:

	  - Routines expected to be called frequently from C code,
	    e.g. longjmp_unwind.

I suspect your assumption would be captured by another exception:

	  - Routines called only from generated code, and likely
	    to be implemented in C, e.g. __cxa_vec_dtor (?).

Of course, in addition to a statement of the principles, we need to be
specific about each of the entrypoints, which I had intended to do by
referencing the ABI header file from the document.

What are people's preferences for the underlying principle?  The method
of specification?  We'll have a header file shortly from Nathan.

Jim

-	    Jim Dehnert		dehnert at sgi.com
				(650)933-4272




More information about the cxx-abi-dev mailing list