PLT pointer destroyed problem when loading IR32_32.DLL (Indeo codec)

Christian Costa titan.costa at wanadoo.fr
Thu Mar 18 03:20:12 CST 2004







> Message du 18/03/04 00:51
> De : Marcus Meissner 
> A : Christian Costa 
> Copie à : wined 
> Objet : Re: PLT pointer destroyed problem when loading IR32_32.DLL (Indeo codec)
> On Wed, Mar 17, 2004 at 10:37:01PM +0000, Christian Costa wrote:
> > Hi,
> > 
> > When executing the DllMain of the native IR32_32.DLL (VFW), Wine crashes.
> > After some investigations, I found that a part of the code uses the EBX 
> > register at one point without saving
> > and restore it afterwards. Since this register contains the PLT pointer 
> > for standard unix functions like libc ones, this
> > does not take a long time for Wine to crashing.
> > I tested with the ugly hack attached that saves and restores the EBX 
> > register between the call to DllMain and that fixed the problem and
> > the DLL works fine then.
> 
> This might happen.
That ebx can be scrapped?

> 
> Your fix is not really ok, you must not modify the stackpointer in asm statements.
> 
> Try using:
> __asm__ __volatile__ ("":::"ebx");
> 
> after entry(), which tells the compiler that ebx has been scrapped. 
Thanks for this! :-)

Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winehq.org/pipermail/wine-devel/attachments/20040318/9e8cad5d/attachment.htm


More information about the wine-devel mailing list