gecko and native msvcrt
jacek at codeweavers.com
Sat Apr 30 08:18:06 CDT 2011
On 4/30/11 3:05 PM, Eric Pouech wrote:
> Le 30/04/2011 12:15, Jacek Caban a écrit :
>> On 4/29/11 11:58 PM, Eric Pouech wrote:
>>> Le 29/04/2011 23:07, Dan Kegel a écrit :
>>>> While testing a game with current gecko, I saw the error
>>>> wine: Call from 0x7bc4ad90 to unimplemented function
>>>> The game needed a native msvcrt, so I had installed one with
>>>> and it didn't export that function.
>>>> So it seems that new gecko is incompatible with old msvcrt,
>>>> and using native msvcrt as a workaround for bugs in wine's
>>>> version is going to be harder than it used to be.
>>>> Time to fix more of them msvcrt bugs, I guess...
>>>> And/or find a more up to date msvcrt.dll for winetricks.
>>> or link gecko against msvcr80 or msvcr90 instead of msvcrt
>> It's harder than it seems, esp. because it's not well supported by
>> mingw-w64. Also even if we did it, Wine would still forward these
>> calls to msvcrt, so one would need another native DLL. Given that, we
>> need more serious reason for the change than supporting hackish
>> winetricks verb. Fixing our msvcrt implementation is the way to go IMO.
> I don't agree on your last point
> in native msvcrt, there is none _snwprintf_s function (it only exists
> in msvcrN where N>=8 (didn't really check all versions))
> _snwprintf_s is implemented in our msvcrN (which forwards them to msvcrt)
> the point here is that one tries to run gecko with native msvcrt which
> doesn't contain this function
> so if gecko needs it, it shouldn't link to msvcrt but to msvcrN is we
> want to maintain compat with native DLLs
I've checked my Win7 msvcrt.dll version and it exports _snwprintf_s
(that's why Dan mentioned finding more up to date msvcrt.dll as an
alternative solution). My point of fixing msvcrt was not related to
_snwprintf_s, I was talking about the reason someone wants to use msvcrt
in the first place (it's an app that requires it due to other bug, not
Gecko). We use mingw-w64 msvcrt import library which doesn't contain
Wine extensions to msvcrt.dll, so we're safe from accidentally using
BTW, mingw-w64 contains limited support for some msvcrN dlls-only
function in its crt (we link it statically), which was enough for our
needs so far.
More information about the wine-devel