patch to bring java vtables closer to g++ abi conformance

Daniel Jacobowitz drow@mvista.com
Fri Jan 25 23:22:00 GMT 2002


On Sat, Jan 26, 2002 at 11:56:19AM +1300, Bryce McKinlay wrote:
> Daniel Jacobowitz wrote:
> 
> >As far as this goes, do whatever you want - but put the symbol name for
> >the vtable where it would be if this were a C++ class. 
> >
> Assuming pre-generated (rather than runtime) vtables, wont the symbol 
> will always point to the real start of the vtable? In C++ I believe the 
> two-words-at-negative-offset thing only applies to single inheritance. 
> There could be more data at a negative offset with a more complex class 
> heirarchy.

No, the symbol with the appropriate mangled name points wherever you
put it.  Separate non-abstract classes in C++ have their own vtable,
regardless of inheritance relationships, because of how dynamic_cast<>
works.

That's my understanding anyway.

> For binary compatibility, there isn't a symbol for the vtable at all 
> because the vtable isn't laid out until runtime.

Then we will need to come up with a solution for this eventually. 
Probably one involving RTTI.  I still don't understand why runtime
vtable's are really necessary, but I don't know anything about the GCJ
runtime at all.

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer



More information about the Java mailing list