While testing a game with current gecko, I saw the error
wine: Call from 0x7bc4ad90 to unimplemented function msvcrt.dll._snwprintf_s, aborting
The game needed a native msvcrt, so I had installed one with winetricks, 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.
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 msvcrt.dll._snwprintf_s, aborting
The game needed a native msvcrt, so I had installed one with winetricks, 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 A+
--- On Fri, 29/4/11, Eric Pouech eric.pouech@orange.fr 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
msvcrt.dll._snwprintf_s,
aborting
The game needed a native msvcrt, so I had installed
one with winetricks,
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 A+
This may be asking for trouble - I assume gecko is (preferably) built with mingw gcc, rather than msvc.
Recently I tried to go this route - wanted to have 64-bit file access from msvc80. Turned out that binaries generated this way gets very confused by the side-by-side assembly system with msvc80 and you need to add/insert a manifest to the PE if you want to go this route, and doing manifest insertion with mingw gcc or open-source tools (rather than microsoft's manifest tool) aren't easy. Ended up just switching to use mingw-specific unix-like 64-bit file access functions instead, to stay with msvcrt (v7). (i.e. the code wouldn't then build with MSVC because it uses mingw-specific things); but I would rather have it built easy with mingw gcc - it is a small sacrifice and easy to make to drop compatibility with msvc compiler..
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 msvcrt.dll._snwprintf_s, aborting
The game needed a native msvcrt, so I had installed one with winetricks, 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.
Jacek
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 msvcrt.dll._snwprintf_s, aborting
The game needed a native msvcrt, so I had installed one with winetricks, 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
A+
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 msvcrt.dll._snwprintf_s, aborting
The game needed a native msvcrt, so I had installed one with winetricks, 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 Wine-only APIs.
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.
Jacek