[ia64-abi] Re: ia64 vtable entries (was: C implementations of the C++ ABI)

Silverstein J. jds at sco.com
Fri Mar 3 13:49:19 UTC 2000


On Thu, Mar 02, 2000 at 11:01:23AM -0800, Richard Henderson wrote:
> On Wed, Mar 01, 2000 at 04:50:24PM -0800, Jim Dehnert wrote:
> > OK, now I understand your issue, at least.  But the vtable might
> > actually benefit as much or more from lazy binding.
> 
> An interesting thought.  I suppose it might could even be made to work,
> though you'd have to do odd things like put entries in .rel.IA-64.pltoff
> that aren't against .IA-64.pltoff.  Or some other variant that gets it
> covered by the DT_JMPREL array. 
> 
> You'd also need a minimal plt entry for each vtable entry.  That's
> 16 bytes a pop, and large dynamicly linked C++ applications might
> start filling up the 1M(?) entry limit on minplt entries.  That limit
> could be extended by changing the linker to use a different minplt
> format for entries farther than a simple branch allows...
> 
> Well, perhaps this'll convince people to use STV_INTERNAL and the like.
> 
> 
> r~

Yes, you can't just decree that these entries participate in
lazy binding.  The lazy binding entries are set up to
branch to a portion of the plt that arranges to branch
into the dynamic linker, passing various arguments like
the index of the related relocation entry.  I think
we must specify that any IPLT relocation from a dot-o
goes into the part of the relocation table that is NOT
covered by DT_JMPREL and DT_PLTRELSZ.

Also, specifying the size of the function descriptors for
ILP32 objects as Jim's proposal does, goes beyond the
scope of this ABI.  While I agree with Jim's proposal,
I don't think all companies will.
-- 
Joel Silverstein
SCO Development Systems
jds at sco.com (908) 790-2371

All opinions expressed are my own.




More information about the cxx-abi-dev mailing list