PLT pointer destroyed problem when loading IR32_32.DLL
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! :-)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the wine-devel