[PATCH v2] api-ms-win-crt-private-l1-1-0: Implement _o__fileno, _o__setmode, _o__wfopen

Emilio Cobos Álvarez emilio at crisal.io
Fri May 15 13:40:02 CDT 2020


On 5/15/20 8:14 PM, Qian Hong wrote:
> Hi Emilio,
> 
> Thanks for the work, I love your blog post.

FWIW, it's not my post, it's the post of a colleague. I just tried to 
get my cross-compilation set up, and hit some more errors, because I was 
using a newer toolchain, so fixed them :)

> It's interesting that you wrote:
> """
> the above two wouldn’t actually be that much of a problem if … Wine
> wasn’t slow. When running full fledged applications or games, it
> really isn’t, but there is a very noticeable overhead when running a
> lot of short-lived processes. That accumulates to several minutes over
> a full Firefox compilation.
> """
> 
> I was working on using Wine as a cross-compile platform a few years
> ago, and I encountered exactly the same problem.
> Sabastian wrote a patch to improve Wine performance for short-lived
> processes, I recommend you to give it a try, it brought significant
> improvement for me:
> https://github.com/wine-staging/wine-staging/tree/master/patches/gdi32-Lazy_Font_Initialization
> 
> Hopefully, someone would review the Wine-Staging patch and bring it to
> Wine master branch someday :)
> (Our Wine-Staging maintainers are doing an amazing job on upstreaming
> patches, thank you!)

Ah, interesting, that's really great to know! I ended up compiling wine 
without freetype and X myself (mostly because I didn't need it for my 
purposes), so I probably didn't hit such slowness. But if that landed 
that would eventually save me the hassle of having my own build :)

Thanks!

  -- Emilio

> On Sat, 16 May 2020 at 03:50, Emilio Cobos Álvarez <emilio at crisal.io> wrote:
>>
>> By delegating to the ucrtbase implementation.
>>
>> This allows me to get a Firefox build cross-compiled as described in [1], but with newer MSVC
>> versions.
>>
>> [1]: https://glandium.org/blog/?p=4020
>>
>> Signed-off-by: Emilio Cobos Álvarez <emilio at crisal.io>
>> ---
>>   .../api-ms-win-crt-private-l1-1-0.spec                      | 6 +++---
>>   dlls/ucrtbase/ucrtbase.spec                                 | 6 +++---
>>   2 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
>> index 8d6ff5e89f..8e00661c8c 100644
>> --- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
>> +++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
>> @@ -270,7 +270,7 @@
>>   @ stub _o__fgetwchar
>>   @ stub _o__filelength
>>   @ stub _o__filelengthi64
>> -@ stub _o__fileno
>> +@ cdecl _o__fileno(ptr) ucrtbase._o__fileno
>>   @ stub _o__findclose
>>   @ stub _o__findfirst32
>>   @ stub _o__findfirst32i64
>> @@ -673,7 +673,7 @@
>>   @ stub _o__set_thread_local_invalid_parameter_handler
>>   @ stub _o__seterrormode
>>   @ stub _o__setmbcp
>> -@ stub _o__setmode
>> +@ cdecl _o__setmode(long long) ucrtbase._o__setmode
>>   @ stub _o__setsystime
>>   @ stub _o__sleep
>>   @ stub _o__sopen
>> @@ -832,7 +832,7 @@
>>   @ stub _o__wfindnext32i64
>>   @ stub _o__wfindnext64
>>   @ stub _o__wfindnext64i32
>> -@ stub _o__wfopen
>> +@ cdecl _o__wfopen(wstr wstr) ucrtbase._o__wfopen
>>   @ stub _o__wfopen_s
>>   @ stub _o__wfreopen
>>   @ stub _o__wfreopen_s
>> diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
>> index d7c0700696..2d77c74274 100644
>> --- a/dlls/ucrtbase/ucrtbase.spec
>> +++ b/dlls/ucrtbase/ucrtbase.spec
>> @@ -934,7 +934,7 @@
>>   @ stub _o__fgetwchar
>>   @ stub _o__filelength
>>   @ stub _o__filelengthi64
>> -@ stub _o__fileno
>> +@ cdecl _o__fileno(ptr) MSVCRT__fileno
>>   @ stub _o__findclose
>>   @ stub _o__findfirst32
>>   @ stub _o__findfirst32i64
>> @@ -1337,7 +1337,7 @@
>>   @ stub _o__set_thread_local_invalid_parameter_handler
>>   @ stub _o__seterrormode
>>   @ stub _o__setmbcp
>> -@ stub _o__setmode
>> +@ cdecl _o__setmode(long long) MSVCRT__setmode
>>   @ stub _o__setsystime
>>   @ stub _o__sleep
>>   @ stub _o__sopen
>> @@ -1496,7 +1496,7 @@
>>   @ stub _o__wfindnext32i64
>>   @ stub _o__wfindnext64
>>   @ stub _o__wfindnext64i32
>> -@ stub _o__wfopen
>> +@ cdecl _o__wfopen(wstr wstr) MSVCRT__wfopen
>>   @ stub _o__wfopen_s
>>   @ stub _o__wfreopen
>>   @ stub _o__wfreopen_s
>> --
>> 2.26.2
>>
>>
> 
> 



More information about the wine-devel mailing list