fwd re: vtable format

Jim Dehnert dehnert at baalbek.engr.sgi.com
Mon Dec 6 22:53:32 UTC 1999


The following issue has arisen in the C++ ABI group.  We have agreed
that virtual function tables will contain function descriptors (i.e.
pointer/gp pairs) instead of pointers to them, primarily for the
performance benefit of not doing an extra indirection.

Richard Henderson of Cygnus points out that the IA-64 relocations don't
really support doing this.  However, the R_IA_64_IPLT*SB relocations do
perform the correct action.  The problem is that they are currently
specified to be valid only in executables and shared objects.  I
believe that the problem can be solved by simply removing this
restriction.  The static linker support required shouldn't be major --
it would presumably just pass the relocations through to the linked
object and let the dynamic linker deal with them.

Am I missing something?  Comments?

Jim

> To: cxx-abi at corp.sgi.com
> Subject: fwd re: vtable format
> X-UIDL: 944516616.004
> From: Jason Merrill <jason at cygnus.com>
> Date: 03 Dec 1999 14:30:43 -0800
> 
> Richard Henderson says there's no way to write the vtables the way we
> decided, at least with the current gABI...
> 
> ------- Start of forwarded message -------
> Date: Fri, 3 Dec 1999 14:27:27 -0800
> From: Richard Henderson <rth at cygnus.com>
> To: Jason Merrill <jason at cygnus.com>
> Cc: law at cygnus.com, Alex Samuel <samuel at codesourcery.com>,
>         gcc-patches at gcc.gnu.org, wilson at cygnus.com
> Subject: Re: PATCH: C data layout tests for IA-64 ABI
> Message-ID: <19991203142727.A3063 at cygnus.com>
> References: <1871.944250173 at upchuck> <u9wvqvsmh1.fsf at yorick.cygnus.com>
> 
> On Fri, Dec 03, 1999 at 02:12:10PM -0800, Jason Merrill wrote:
> > The ia64 C++ ABI committee has decided to use the descriptors.  If this
> > doesn't make sense (i.e. if there's no way to express such a thing to the
> > assembler), now's the time to let us know...:)
> 
> You mean you want the vtable to look like
> 
> 	struct { void *code, *gp } vtable[];
> 
> There are no suitable IA-64 relocations to express this.
> 
> 
> r~
> ------- End of forwarded message -------
> 
-		Jim Dehnert  x3-4272




More information about the cxx-abi-dev mailing list