[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: [PATCH 1/2] vcruntime140: Add the new MSVC 2015 compiler specific DLL.
From: Martin_Storsjö <martin () martin ! st>
Date: 2015-08-31 20:51:05
Message-ID: alpine.DEB.2.02.1508312322490.6942 () cone ! martin ! st
[Download RAW message or body]
On Fri, 28 Aug 2015, Alexandre Julliard wrote:
> Martin Storsjo <martin@martin.st> writes:
>
>> Since MSVC 2015/Windows 10, the C runtime has now been split into two
>> parts, ucrtbase, which is the generic C runtime which is now considered
>> a system component, and vcruntimeX which is specific to the compiler
>> version.
>>
>> Even if this DLL only has a fraction of the functions of the full
>> msvcrt/ucrtbase, it still requires almost all the object files from
>> msvcrt.
>
> It would be better to isolate the corresponding code so that we don't
> need all the files.
That would indeed be the best. For some functions (like
memcmp/memcpy/memmove/memset and such) it's pretty straightforward, but
for others it does pull in most of the internals of the msvcrt
implementation.
One example: _purecall and _set_purecall_handler (currently implemented in
exit.c). The _purecall implementation uses _amsg_exit which in turn uses
_cprintf (console.c), _MSVCRT_app_type (data.c) and DoMessageBox, which
uses _MSVCRT_mbstowcs (mbcs.c).
Second example: MSVCRT__get_unexpected (cpp.c), using
msvcrt_get_thread_data (thread.c), which uses MSVCRT_locale (locale.c).
So unless it's a really simple function, it ends up pulling in most of the
msvcrt internals.
For the real implementation, I'd guess it uses most things from ucrtbase,
instead of having a separate full crt state within both DLLs. But I'm not
sure I'm ready to take on such a challenge.
// Martin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic