On cygwin, these programs fails because they lack __wargv definition. So adding -mno-cygwin flag tell winegcc to link them with msvcrt instead of libc

GOUJON Alexandre ale.goujon at gmail.com
Tue Mar 16 15:56:06 CDT 2010


Le 03/15/10 14:11, Alexandre Julliard a écrit :
> Alexandre Goujon<ale.goujon at gmail.com>  writes:
>
>    
>> ---
>>   programs/cmd/Makefile.in         |    2 +-
>>   programs/dxdiag/Makefile.in      |    2 +-
>>   programs/explorer/Makefile.in    |    2 +-
>>   programs/extrac32/Makefile.in    |    2 +-
>>   programs/mshta/Makefile.in       |    2 +-
>>   programs/reg/Makefile.in         |    2 +-
>>   programs/start/Makefile.in       |    2 +-
>>   programs/svchost/Makefile.in     |    2 +-
>>   programs/termsv/Makefile.in      |    2 +-
>>   programs/uninstaller/Makefile.in |    2 +-
>>   programs/winebrowser/Makefile.in |    2 +-
>>   programs/winedevice/Makefile.in  |    2 +-
>>   programs/winepath/Makefile.in    |    2 +-
>>   13 files changed, 13 insertions(+), 13 deletions(-)
>>      
> These apps don't link to msvcrt on purpose. If things are broken on
> cygwin that needs to be handled in winegcc, you shouldn't have to touch
> the makefiles.
>
>    

I agree these programs don't need any msvcrt function.
However, building on Windows calls mingw_unicode_hack (winegcc.c l.546)
  551     create_file( main_stub, 0644,
  552                  "#include <stdlib.h>\n"
  553                  "extern int wmain(int,wchar_t**);\n"
  554                  "int main( int argc, char *argv[] )\n{\n"
  555                  "    return wmain( argc, __wargv );\n}\n" );
  556     return compile_to_object( opts, main_stub, NULL );

So __wargv definition is needed (do we need the whole msvcrt library ?).

As you don't want to link these with msvcrt, I'm wondering if we can use 
something like mbsrtowcs.

Thanks



More information about the wine-devel mailing list