This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Re[2]: visual studio compatibility
- To: Joe Buck <jbuck at synopsys dot COM>
- Subject: Re: Re[2]: visual studio compatibility
- From: Francois Gouget <fgouget at free dot fr>
- Date: Thu, 17 May 2001 11:24:03 -0700 (PDT)
- cc: Daniel Berlin <dan at www dot cgsoftware dot com>, Reed Kotler <reedkotler at hotmail dot com>, =?Windows-1251?B?z+Di5esgyvPn7eX27uI=?= <decraft at bigfoot dot com>, Fergus Henderson <fjh at cs dot mu dot oz dot au>, gcc at gcc dot gnu dot org
On Mon, 14 May 2001, Joe Buck wrote:
> [ reverse engineering msvc ]
>
> > Object layout we can't do anyway. They've patented most of it (You can
> > therefore find most of it documented in the patents), and as they
> > get more desperate to stop open source software, i'd think we don't want
> > to be anywhere near the cross-hairs.
>
> It might be possible to do a partial job without violating their patents;
> there's nothing special in the case of single inheritance. But yes, any
> implementation that is fully binary compatible with MSVC has to violate
> a patent.
Isn't the single inheritance case already done? There's an email on
'gcc-bugs' with the title 'COM binary compatibility' that says the gcc
3.0 ABI will be compatible with COM objects out of the box (no more
com_interface attribute). Since COM objects are nothing more than VC++
classes with single inheritance this seems to imply that the single
inheritance case is already solved.
I guess you were refering to US5297284 for the multiple inheritance
case. AFAIU it does specify optimisations for the virtual table layout
and the handling of the this pointer. How does the new gcc 3.0 ABI deal
with it? It does things like VC++ for the single inheritance case but
goes another way to deal with multiple inheritance?
(In the Wine project we side-step the whole issue by not using the
compiler to do the COM object layout)
--
Francois Gouget fgouget@free.fr http://fgouget.free.fr/
f u kn rd ts, ur wy 2 gky 4 ur wn gd.