locales, unicode and ansi with msvcrt (bug 8022) - and -mno-cygwin option

Kirill K. Smirnov lich at math.spbu.ru
Tue Apr 17 08:48:12 CDT 2007


>I've tried the test with winelib and got:

>$ winegcc test.c
>$ ./a.out > nya
>$ od -x nya
>0000000 3f3f 3f3f 3f3f 3f3f 0066
>0000011

>This output differs from previous. I tried this under several locales, the 
>results are the same. 

test.c:
void main() { wprintf(L"test with wprintf"); }

I continued my investigation of this problem and what I figured out:

1) no options for winegcc:
$ winegcc test.c
$ ./a.out > out
$ od -x out
0000000 3f3f 3f3f 3f3f 3f3f 0066
0000011

2) -mno-cygwin
$ winegcc -mno-cygwin test.c
$ ./a.out > out
$ od -x out
0000000 6574 7473 7720 7469 2068 7077 6972 746e
0000020 0066

This is OK.

I tried -mconsole option too, but it did not make any difference.

So -mno-cygwin option heals the program.
What magic does -mno-cygwin option? I cannot understand, why it is necessary. 
Moreover, tests for msvcrt are OK without -mno-cygwin.

--
Kirill



More information about the wine-devel mailing list