Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54353
There are two issues which the patchset is fixing:
1. Using cert's serial is not quite right, we need to hash full certificate contents as the check result depends on the other certificate data.
2. The check result also depends on revocation check parameters. I think currently it is only issuer certificate from the parameters which can affect the result which is cached.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2009
> (The TlsIndex field in the LDR_DATA_TABLE_ENTRY structure appears to be unused except as a flag that the module has TLS (being always set to -1), at least as far back as Windows XP. It is worth mentioning that the WINE implementation of implicit TLS incorrectly uses TlsIndex as the real module TLS index, so it may be unreliable to assume that it is always -1 if you care about working on WINE.)
>
> \- http://www.nynaeve.net/?p=186
and the "links to that article but still doesn't work in wine" award goes to... [the D runtime](https://github.com/dlang/dmd/blob/6bf60ea0eb174631ede0074a77d3898d…! (Admittedly, there aren't too many ways to do what they're trying to do.)
With this, the D runtime will now work in Wine, even if in a dll loaded into an exe with no tls (which gets it the tls index 0)
The changes to the debugger are a bit icky, a possible alternative is to find some other easily-debugger-accessible place to stuff the tls index.
--
v8: ntdll: TlsIndex should not actually contain tls indices
winedbg: Fix read access to variables with thread local storage.
winedbg: Track loaded modules
https://gitlab.winehq.org/wine/wine/-/merge_requests/1578