[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